เมื่อต้องการพิมพ์แถวจากเมทริกซ์ที่มีตัวเลขตัวเดียวกันที่ดัชนีที่กำหนด (ของตัวเลขแรกในแถว) สามารถใช้ list comprehension และ all() ได้
ตัวอย่าง
my_list = [[7745, 6755, 87, 978], [727, 927, 845], [192, 997, 49], [98, 74, 27]]
print("The list is :")
print(my_list)
my_key = 1
print("The key is ")
print(my_key)
my_result = [element for element in my_list if all(str(i)[my_key] == str(element[0])[my_key] for i in element)]
print("The result is :")
print(my_result)
ผลลัพธ์
The list is : [[7745, 6755, 87, 978], [727, 927, 845], [192, 997, 49], [98, 74, 27]] The key is 1 The result is : [[7745, 6755, 87, 978], [192, 997, 49]]
คำอธิบาย
กำหนดเมทริกซ์ตัวเลขและดัชนี my_key (ตำแหน่งตัวอักษรในสตริงของตัวเลข)
ใช้ list comprehension กรองแต่ละแถว (element)
ใช้
all(str(i)[my_key] == str(element[0])[my_key] for i in element)แปลงทุกตัวเลขในแถวเป็นสตริง เปรียบเทียบตัวอักษรตำแหน่ง my_key กับตัวเลขแรกของแถว
แถวแรก: ตัวเลขแรก 7745[1]='7', อื่นๆ ตำแหน่ง 1 ก็คือ '7' ทุกตัว ✓
แถวสาม: 192[1]='9', 997[1]='9', 49[1]='9' ✓
แสดงผลลัพธ์แถวที่ผ่าน