Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หาสมาชิกถัดไปที่ใกล้ที่สุดในแมทริกซ์ (Next Nearest Element in Matrix)


ตัวอย่าง

โค้ดด้านล่างกำหนดฟังก์ชัน get_nearest_elem ค้นหาค่า my_key ในแถวตั้งแต่แถว x ตำแหน่ง y+1 เป็นต้นไป คืนค่าดัชนี (row, col) ที่เจอแรก

def get_nearest_elem(my_list, x, y, my_key):
    for index, row in enumerate(my_list[x:]):
        for j, elem in enumerate(row):
            if elem == my_key and j > y:
                return index + x, j
    return -1, -1

my_list = [[21, 32, 11, 22, 13], [91, 52, 31, 26, 33], [81, 52, 3, 22, 3], [11, 92, 83, 4, 9]]
print("The list is :")
print(my_list)
i, j = 1, 3
my_key = 3
my_res_abs, my_res_ord = get_nearest_elem(my_list, i, j, my_key)
print("The found K index is :")
print(my_res_abs, my_res_ord)

ผลลัพธ์

The list is : [[21, 32, 11, 22, 13], [91, 52, 31, 26, 33], [81, 52, 3, 22, 3], [11, 92, 83, 4, 9]]
The found K index is : 2, 4

คำอธิบาย

  • กำหนดฟังก์ชัน get_nearest_elem รับลิสต์, แถวเริ่มต้น x, คอลัมน์เริ่มต้น y, ค่าที่หา my_key

  • วนลูปแถวตั้งแต่ x เป็นต้นไป ในแต่ละแถวนวนคอลัมน์ ถ้าเจอ my_key และคอลัมน์ > y คืน (row_index, col_index)

  • ถ้าไม่เจอคืน (-1, -1)

  • นอกฟังก์ชัน: กำหนดแมทริกซ์, i=1, j=3, key=3 เรียกฟังก์ชัน แสดงผล