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

Python – กรองแถวที่มีผลรวมคู่เฉพาะเจาะจง


เมื่อต้องการกรองแถวที่มีคู่ของตัวเลขให้ผลรวมเท่ากับค่าที่กำหนด จะนิยามฟังก์ชันเพื่อตรวจสอบเงื่อนไข

ตัวอย่าง

def find_sum_pair(val, key):
    for index in range(len(val)):
        for ix in range(index + 1, len(val)):
            if val[index] + val[ix] == key:
                return True
    return False

my_list = [[71, 5, 21, 6], [34, 21, 2, 71], [21, 2, 34, 5], [6, 9, 21, 42]]
print("The list is :")
print(my_list)
my_key = 76
print("The key is ")
print(my_key)
my_result = [element for element in my_list if find_sum_pair(element, my_key)]
print("The resultant list is :")
print(my_result)

ผลลัพธ์

The list is : [[71, 5, 21, 6], [34, 21, 2, 71], [21, 2, 34, 5], [6, 9, 21, 42]]
The key is 76
The resultant list is : [[71, 5, 21, 6]]

คำอธิบาย

  • นิยามฟังก์ชัน find_sum_pair ที่รับสองพารามิเตอร์

  • วนลูปแบบซ้อนเพื่อตรวจสอบผลรวมของคู่สมาชิกทุกคู่ในแถว

  • หากพบคู่ที่ผลรวมเท่ากับ key คืนค่า True

  • หากไม่พบ คืนค่า False

  • นอกจากฟังก์ชัน กำหนดรายการและค่า key

  • ใช้ List Comprehension กรองแถวที่ฟังก์ชันคืนค่า True

  • แสดงผลลัพธ์บนคอนโซล