পদ্ধতি ১: max() + set() + count()
listA = [45, 20, 11, 50, 17, 45, 50, 13, 45]
res = max(set(listA), key=listA.count)
print(res) # 45
set(listA) দিয়ে ইউনিক এলিমেন্ট, key=listA.count দিয়ে ফ্রিকোয়েন্সি কমপেয়ার।
পদ্ধতি ২: collections.Counter
from collections import Counter
listA = [45, 20, 11, 50, 17, 45, 50, 13, 45]
res = Counter(listA).most_common(1)[0][0]
print(res) # 45
most_common(1) সরাসরি টপ-১ দেয় — দ্রুত ও পাইথনিক।
পদ্ধতি ৩: statistics.mode()
from statistics import mode
listA = [45, 20, 11, 50, 17, 45, 50, 13, 45]
res = mode(listA)
print(res) # 45
mode() সরাসরি মোড (সর্বাধিক ফ্রিকোয়েন্ট) রিটার্ন করে (Python 3.8+)。
তুলনা
- max+count: O(n²) — ছোট লিস্টে ঠিক।
- Counter: O(n) — বড় লিস্টের জন্য সেরা।
- mode: সবচেয়ে সহজ, কিন্তু একাধিক মোড হলে StatisticsError দেয়।
আউটপুট
45