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

Python-এ স্ট্রিং-এ আবারাবার আসা ক্যারেক্টার গ্রুপে ভাগ করা (groupby)

স্ট্রিং-এ последовательно আসা একই ক্যারেক্টারগুলো গ্রুপে ভাগ করতে itertools.groupby ব্যবহার করা হয়। এটি রান-লেথ এনকোডিং (RLE)-র ভিত্তি।

উদাহরণ কোড

from itertools import groupby

my_string = 'pppyyytthhhhhhhoooooonnn'
print("The string is:")
print(my_string)

# groupby দিয়ে কনসিকিউটিভ ক্যারেক্টার গ্রুপ করা
my_result = ["".join(grp) for elem, grp in groupby(my_string)]

print("The result is:")
print(my_result)

আউটপুট

The string is: pppyyytthhhhhhhooonnn
The resultant split string is: ['ppp', 'yyy', 'tt', 'hhhhhhh', 'ooo', 'nnn']

ব্যাখ্যা

  • groupby(my_string) — প্রতিটি কনসিকিউটিভ গ্রুপের জন্য (key, group) জেনারেট করে।
  • key — ক্যারেক্টার (p, y, t, h, o, n)।
  • grp — ইটারেটর যা সেই ক্যারেক্টারগুলো ধারণ করে।
  • "".join(grp) — ইটারেটরকে স্ট্রিংে জোড়া দেয়।

বিকল্প: রান-লেথ এনকোডিং (RLE)

# ক্যারেক্টার এবং তার কাউন্ট পাওয়ার জন্য
rle = [(char, len(list(group))) for char, group in groupby(my_string)]
print(rle)  # [('p', 3), ('y', 3), ('t', 2), ('h', 7), ('o', 3), ('n', 3)]

এটি ডেটা কমপ্রেশন, টেক্সট প্রসেসিং, এবং প্যাটার্ন রিকগনিশনে ব্যবহারী।

  1. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  2. পাইথন প্রোগ্রাম: স্ট্রিং-এ মিরর ক্যারেক্টার বের করা

  3. পাইথনে স্ট্রিং স্প্লিট ও জয়েন করার প্রোগ্রাম

  4. পাইথনে ক্যারেক্টারের লিস্টকে স্ট্রিংয়ে রূপান্তর করার প্রোগ্রাম