แนวคิด
กำหนดสอง 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)