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

পাইথনে ডISTINCT শব্দ এবং তাদের ফ্রিকোয়েন্সি কাউন্ট করার প্রোগ্রাম

ধরুন আমাদের একটি শব্দের লিস্ট আছে। এই শব্দগুলো একাধিকবার হতে পারে। আমাদের এই শব্দগুলোর ফ্রিকোয়েন্সি দেখাতে হবে এবং কতগুলো ডISTINCT শব্দ আছে সেটাও কাউন্ট করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] হয়, তবে আউটপুট হবে (4, '2 1 2 1') কারণ ৪টি ডISTINCT শব্দ আছে, প্রথম এবং তৃতীয় শব্দ দুবার করে এসে আছে।

সমাধানের ধাপসমূহ

  • d := একটি OrderedDict যাতে আইটেমগুলো ইনসারশন অর্ডারে স্টোর হয়
  • প্রতিটি w ইন words এর জন্য:
    • যদি w d-এ থাকে, তবে d[w] := d[w] + 1
    • অন্যথায় d[w] := 1
  • d-এর সব কীয়ের লিস্টের সাইজ এবং d-এর সব ভ্যালু জয়েন করে একটি স্ট্রিং বানান, তারপর রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

from collections import OrderedDict

def solve(words):
    d = OrderedDict()
    for w in words:
        if w in d:
            d[w] += 1
        else:
            d[w] = 1
    return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()])

words = ["Book", "Sound", "Language", "Computer", "Book", "Language"]
print(solve(words))

ইনপুট

["Book", "Sound", "Language", "Computer", "Book", "Language"]

আউটপুট

(4, '2 1 2 1')
  1. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  2. পাইথনে সেন্টেন্সে শব্দ গণনা করা

  3. পাইথনে লিস্টে পজিটিভ এবং নেগেটিভ সংখ্যা গণনা

  4. পাইথন প্রোগ্রাম: দেয়া স্ট্রিং-এ শব্দ গণনা (Count Words in a Given String)