ได้ลิสต์ของสตริง (หรือสับลิสต์) และค่าที่ต้องการค้นหา นับจำนวนสับลิสต์ที่มีค่านั้น
วิธี 1: ใช้ for Loop กับ in
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
target = 'Mon'
count = sum(1 for item in Alist if target in item)
print(count) # 2
วิธี 2: ใช้ sum() กับ Generator (เทียบเท่า)
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
target = 'Mon'
count = sum(target in item for item in Alist)
print(count) # 2 (True=1, False=0)
วิธี 3: ใช้ Counter + chain (สำหรับหาในทุกระดับ)
from itertools import chain
from collections import Counter
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
target = 'M'
cnt = Counter(chain.from_iterable(set(s) for s in Alist))[target]
print(cnt) # 2
สรุป
วิธี 1-2 ใช้สำหรับลิสต์แบน (Flat List) วิธี 3 ใช้เมื่อสมาชิกเป็น Iterable (เช่น สตริงหรือลิสต์) และต้องการนับ Unique ต่อสับลิสต์