চলুন একটি লিস্ট বিবেচনা করি যাতে ভিন্ন ভিন্ন দৈর্ঘ্যের অনেক স্ট্রিং রয়েছে। এই আর্টিকেলে আমরা দেখব কিভাবে সেসব উপাদানকে গ্রুপে ভাগ করা যায় যাতে প্রতিটি গ্রুপে সমান দৈর্ঘ্যের স্ট্রিং থাকে।
ফর লুপের সাথে
আমরা একটি ফর লুপ ডিজাইন করি যা লিস্টের প্রতিটি উপাদানধরেই ইটারেট করবে এবং শুধু সে লিস্টে অ্যাপেন্ড করবে যেটার দৈর্ঘ্য ইত্যাদি উপাদানের সাথে মিলে।
উদাহরণ
listA = ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# Given list
print("Given list: \n", listA)
# স্ট্রিং সাইজ অনুযায়ী ক্যাটাগরাইজ
len_comp = lambda x, y: len(x) == len(y)
res = []
for sub_list in listA:
ele = next((i for i in res if len_comp(sub_list, i[0])), [])
if ele == []:
res.append(ele)
ele.append(sub_list)
# ফলাফল
print("The list after creating categories: \n", res)
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −
Given list: ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories: [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]
সর্ট এবং গ্রুপবাই-এর সাথে
এই পদ্ধতিতে আমরা প্রথমে সব উপাদানকে তাদের দৈর্ঘ্য অনুযায়ী সর্ট করি এবং তারপর itertools মডিউলের groupby ফাংশন প্রয়োগ করি।
উদাহরণ
from itertools import groupby
listA = ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# Given list
print("Given list: \n", listA)
# স্ট্রিং সাইজ অনুযায়ী ক্যাটাগরাইজ
get_len = lambda x: len(x)
sub_list = sorted(listA, key=get_len)
res = [list(ele) for i, ele in groupby(sub_list, get_len)]
# ফলাফল
print("The list after creating categories: \n", res)
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −
Given list: ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories: [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]