เมื่อต้องการกรองแถว (สับลิสต์) ที่มีสมาชิกครอบคลุมทุกค่าในช่วงที่กำหนด สามารถใช้ 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 อยู่ในแถวนั้นหรือไม่เก็บเฉพาะแถวที่ครบทุกค่า แสดงผลลัพธ์