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

পাইথন - লিস্টে স্ট্রিং-এর কন্টiguous গ্রুপ বানানো

একটি মিক্সড লিস্টে লাগাতার স্ট্রিং এলিমেন্টগুলো গ্রুপ করে সাব-লিস্ট বানাতে itertools.groupby এবং জেনারেটর (yield) ব্যবহার করা হয়।

উদাহরণ

from itertools import groupby

def string_check(elem):
    return isinstance(elem, str)

def group_string(my_list):
    for key, grp in groupby(my_list, key=string_check):
        if key:
            yield list(grp)
        else:
            yield from grp

my_list = [52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]
print("The list is :")
print(my_list)

my_result = [*group_string(my_list)]
print("The result is:")
print(my_result)

আউটপুট

The list is : [52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]
The result is: [52, 11, ['py', 'th', 'on'], 11, 52, ['i', 's'], 18, ['f', 'un'], 99]

ব্যাখ্যা

  • string_check: এলিমেন্ট স্ট্রিং কিনা চেক করে।
  • group_string: groupby দিয়ে কন্টিগুয়াস গ্রুপ বানায়। স্ট্রিং গ্রুপ হলে লিস্ট বানায় (yield list(grp)), নন-স্ট্রিং হলে আলাদা করে দেয় (yield from grp)।
  • বাহিরে লিস্ট ডিফাইন করে জেনারেটর কল করা হয় এবং আনপ্যাক (*) করে লিস্ট বানানো হয়।

ব্যবহার: মিক্সড টাইপ ডেটা প্রসেসিং, টেক্সট সেগমেন্টেশন ইত্যাদিতে উপকারী।

  1. পাইথনে স্ট্রিং এবং ক্যারেক্টারের লিস্টকে ক্যারেক্টারের লিস্টে রূপান্তর

  2. পাইথনে স্ট্রিং লিস্টের এলিমেন্টের কেস রূপান্তর

  3. পাইথনে লিস্ট অফ স্ট্রিং থেকে নম্বর এক্সট্র্যাক্ট করুন

  4. পাইথনে স্ট্রিংয়ের লিস্ট সর্ট করা