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

Python – พิมพ์แถวที่มีสมาชิกตัวเดียวกันที่ดัชนีที่กำหนด

เมื่อต้องการพิมพ์แถวจากเมทริกซ์ที่มีตัวเลขตัวเดียวกันที่ดัชนีที่กำหนด (ของตัวเลขแรกในแถว) สามารถใช้ 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' ✓

  • แสดงผลลัพธ์แถวที่ผ่าน