ได้ลิสต์ ต้องการนับสมาชิกที่ตรงเงื่อนไขเฉพาะ (เช่น เป็น '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 เหมาะสำหรับการสะสมแบบซับซ้อน