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

Count Elements Matching Condition ใน Python: นับสมาชิกที่ตรงเงื่อนไข

ได้ลิสต์ ต้องการนับสมาชิกที่ตรงเงื่อนไขเฉพาะ (เช่น เป็น 'Mon' หรือ 'Wed')

วิธี 1: sum() กับ Generator Expression

Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = sum(1 for x in Alist if x in ('Mon', 'Wed'))
print(cnt)  # 3

วิธี 2: map() + lambda + sum()

Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = sum(map(lambda x: x in ('Mon', 'Wed'), Alist))
print(cnt)  # 3

วิธี 3: functools.reduce()


from functools import reduce
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = reduce(lambda acc, x: acc + (x in ('Mon', 'Wed')), Alist, 0)
print(cnt)  # 3

สรุป

วิธี 1 อ่านง่ายที่สุด วิธี 2 Functional Style วิธี 3 ใช้ Reduce เหมาะสำหรับการสะสมแบบซับซ้อน