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

ตรวจสอบว่าแถวทุกแถวใน Matrix มีสมาชิกร่วมกับ Matrix อีกตัว

แนวคิด

กำหนดสอง matrix (ลิสต์ของลิสต์) ขนาดแถวเท่ากัน ตรวจสอบว่า "ทุกแถว" ของ matrix แรก มีสมาชิกร่วมกับแถวตรงข้ามของ matrix ที่สอง อย่างน้อย 1 ตัว

ตัวอย่างโค้ด

my_list_1 = [[3, 16, 1], [2, 4], [4, 31, 31]]
my_list_2 = [[42, 16, 12], [42, 8, 12], [31, 7, 10]]

print("Matrix 1:", my_list_1)
print("Matrix 2:", my_list_2)

my_result = True
for idx in range(len(my_list_1)):
    temp = False
    for element in my_list_1[idx]:
        if element in my_list_2[idx]:
            temp = True
            break
    if not temp:
        my_result = False
        break

if my_result:
    print("ทุกแถวมีสมาชิกร่วมกัน")
else:
    print("มีแถวที่ไม่มีสมาชิกร่วมกัน")

ผลลัพธ์

Matrix 1: [[3, 16, 1], [2, 4], [4, 31, 31]]
Matrix 2: [[42, 16, 12], [42, 8, 12], [31, 7, 10]]
มีแถวที่ไม่มีสมาชิกร่วมกัน

คำอธิบาย

  • แถว 0: [3,16,1] และ [42,16,12] -> ร่วมกันที่ 16 ✓
  • แถว 1: [2,4] และ [42,8,12] -> ไม่มีสมาชิกร่วม ✗
  • แถว 2: [4,31,31] และ [31,7,10] -> ร่วมกันที่ 31 ✓
  • เพราะแถว 1 ไม่มี -> ผลลัพธ์ False

วิธี Pythonic ด้วย set

my_result = all(
    set(row1) & set(row2)  # intersection ไม่ว่าง
    for row1, row2 in zip(my_list_1, my_list_2)
)
print("ทุกแถวมีสมาชิกร่วมกัน:", my_result)