ได้ Tuple และ List นับจำนวนรวมของสมาชิกใน List ที่ปรากฏใน Tuple (นับซ้ำได้)
วิธี 1: ใช้ Counter บน Tuple แล้ว Sum ตาม List
from collections import Counter
Atup = ('Mon', 'Wed', 'Mon', 'Tue', 'Thu')
Alist = ['Mon', 'Thu']
cnt = Counter(Atup)
res = sum(cnt[x] for x in Alist)
print(res) # 3 (Mon=2, Thu=1)
วิธี 2: ใช้ sum() กับ Generator (แปลง List เป็น Set กันนับซ้ำ)
Atup = ('Mon', 'Wed', 'Mon', 'Tue', 'Thu')
Alist = ['Mon', 'Thu', 'Mon']
Alist = set(Alist)
res = sum(1 for x in Atup if x in Alist)
print(res) # 3
สรุป
วิธี 1 ใช้เมื่อต้องการนับตามจำนวนใน List (ถ้า List มี 'Mon' 2 ครั้ง จะนับ 2×2=4) วิธี 2 ใช้ Set นับ Unique ต่อ Tuple