পদ্ধতি ১: sum() + জেনারেটর + in
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = sum(1 for x in Alist if x in ('Mon', 'Wed'))
print(cnt) # 3
পদ্ধতি ২: map() + lambda + sum()
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = sum(map(lambda x: x in ('Mon', 'Wed'), Alist))
print(cnt) # 3
পদ্ধতি ৩: functools.reduce + lambda
from functools import reduce
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
cnt = reduce(lambda c, x: c + (x in ('Mon', 'Wed')), Alist, 0)
print(cnt) # 3
ব্যাখ্যা
- sum + generator: সবচেয়ে পাইথনিক এবং রিডেবল।
- map + lambda: ফাংশনাল স্টাইল, বুলিয়ান আউটপুট সরাসরি সম করে।
- reduce: একমাত্র পাসে অ্যাকুমুলেট করে, কিন্তু কম রিডেবল।
- সব পদ্ধতিতে
x in ('Mon','Wed') বুলিয়ান রিটার্ন করে (True=1, False=0)।
আউটপুট
3