কম্পিউটার টিউটোরিয়াল

পাইথন - লিস্টে K-র চেয়ে বড় মানের সংখ্যা গণনা

লিস্টে একটি থ্রেশহোল্ড (K) এর চেয়ে বড় কতগুলো উপাদান আছে তা গণনা করা একটি সাধারণ টাস্ক। নিচে তিনটি পদ্ধতির উদাহরণ এবং পারফরম্যান্স তুলনা দেওয়া হলো।

উদাহরণ

test_list = [1, 7, 5, 6, 3, 8]
k = 4
# ৪-এর চেয়ে বড়: 7, 5, 6, 8 → ৪টি
# প্রত্যাশিত আউটপুট: 4

১. for লুপ (নেভ, বোঝার জন্য সহজ)

count = 0
for i in test_list:
    if i > k:
        count += 1
print("৪-এর চেয়ে বড় সংখ্যা:", count)

২. লিস্ট কাম্প্রিহেনশন + len() (পাইথনিক)

count = len([i for i in test_list if i > k])
print("৪-এর চেয়ে বড় সংখ্যা:", count)

৩. sum() + জেনারেটর এক্সপ্রেশন (সর্বাধিক দক্ষ, মেমরি-ফ্রেন্ডলি)

count = sum(i > k for i in test_list)
print("৪-এর চেয়ে বড় সংখ্যা:", count)
# i > k বুলিয়ান রিটার্ন করে (True=1, False=0), sum() যোগ করে

আউটপুট (সব পদ্ধতির জন্য একই)

৪-এর চেয়ে বড় সংখ্যা: 4

পারফরম্যান্স তুলনা (১০ মিলিয়ন উপাদানের জন্য)

পদ্ধতিটাইম কমপ্লেক্সিটিমেমরিরিলেটিভ স্পিডসুপারিশ
for লুপO(N)O(1)১.০x (বেসলাইন)বিগিনার, ডিবাগিং
len([...])O(N)O(N)~১.২x ধীরছোট লিস্ট, পঠনযোগ্য
sum(gen)O(N)O(1)~০.৮x (দ্রুততম)প্রোডাকশন, বড় ডেটা

NumPy ব্যবহার করে (সাংখ্যিক অ্যারের জন্য)

import numpy as np
arr = np.array([1, 7, 5, 6, 3, 8])
count = np.sum(arr > k)  # ভেক্টরাইজড, খুব দ্রুত
print(count)  # 4

অতিরিক্ত: মানগুলিও পাওয়া যাক

# শুধু কাউন্ট নয়, মানগুলিও চাইলে
greater_values = [i for i in test_list if i > k]
print("মানগুলো:", greater_values)  # [7, 5, 6, 8]
print("কাউন্ট:", len(greater_values))

সেরা অনুশীলন

  • সাধারণ পাইথন লিস্ট: sum(1 for x in lst if x > k) বা sum(x > k for x in lst)।
  • NumPy অ্যারে: np.sum(arr > k) (১০-১০০x দ্রুত)।
  • পান্ডাস Series: (series > k).sum()।
  • সর্টেড লিস্ট থাকলে bisect মডিউল দিয়ে O(log N)-এ করা যায়।
  1. পাইথনে সংখ্যাকে পূর্ণসংখ্যার লিস্টে রূপান্তর

  2. পাইথনে লিস্ট থেকে ইভেন ভ্যালু ফিল্টার (Filter Even Values from List)

  3. পাইথনে max() এবং min() ফাংশন ব্যবহার

  4. পাইথনে K-র চেয়ে বড় প্রথম এলিমেন্টের ইন্ডেক্স বের করা