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

Python – กรองแถวที่มีสมาชิกครบทุกค่าในช่วง

เมื่อต้องการกรองแถว (สับลิสต์) ที่มีสมาชิกครอบคลุมทุกค่าในช่วงที่กำหนด สามารถใช้ list comprehension และ all() ได้

ตัวอย่าง

my_list = [[3, 2, 4, 5, 10], [32, 12, 4, 51, 10], [12, 53, 11], [2, 3, 31, 5, 8, 7]]
print("The list is :")
print(my_list)
i, j = 2, 5
my_result = [index for index in my_list if all(element in index for element in range(i, j + 1))]
print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [[3, 2, 4, 5, 10], [32, 12, 4, 51, 10], [12, 53, 11], [2, 3, 31, 5, 8, 7]]
The result is : [[3, 2, 4, 5, 10]]

คำอธิบาย

  • กำหนดเมทริกซ์และช่วง i ถึง j (รวม)

  • ใช้ list comprehension วนลูปแต่ละแถว (index)

  • ใช้ all(element in index for element in range(i, j+1)) ตรวจสอบว่าทุกค่าในช่วง 2-5 อยู่ในแถวนั้นหรือไม่

  • เก็บเฉพาะแถวที่ครบทุกค่า แสดงผลลัพธ์