เมื่อต้องการกรอง tuple ที่มีสมาชิกทุกตัวเป็นจำนวนบวก (หรือศูนย์) จาก list of tuples สามารถใช้ list comprehension ร่วมกับฟังก์ชัน all()
โค้ดตัวอย่าง
my_list = [(56, 43), (-31, 21, 23), (51, -65, 26), (24, 56)]
print("The list is:")
print(my_list)
my_result = [sub for sub in my_list if all(elem >= 0 for elem in sub)]
print("The positive elements are:")
print(my_result)
ผลลัพธ์
The list is: [(56, 43), (-31, 21, 23), (51, -65, 26), (24, 56)] The positive elements are: [(56, 43), (24, 56)]
คำอธิบาย
กำหนด list of tuples และแสดงผล
ใช้ list comprehension:
[sub for sub in my_list if all(elem >= 0 for elem in sub)]all(elem >= 0 for elem in sub)คืน True ก็ต่อเมื่อทุก elem ใน sub ต้องมากกว่าหรือเท่ากับ 0Tuple ที่ผ่านเงื่อนไขจะถูกเก็บใน my_result
ข้อสังเกต: โค้ดตรวจสอบ elem >= 0 รวมศูนย์ด้วย หากต้องการ "บวกอย่างเคร่งครัด" (positive only) ให้เปลี่ยนเป็น elem > 0