এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যা একটি তালিকা থেকে অনুরূপ সাবস্ট্রিংগুলিকে গোষ্ঠীভুক্ত করে। আরও স্পষ্টভাবে বোঝার জন্য আসুন একটি উদাহরণ দেখি।
ইনপুট
strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1']
আউটপুট
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ['python-1', 'python-2'], ['javascript-1']]
আমরা গ্রুপবাই ব্যবহার করতে যাচ্ছি itertools থেকে পদ্ধতি সমস্যা সমাধানের জন্য মডিউল। গ্রুপবাই মেথড সব অনুরূপ স্ট্রিংকে একটি আইটার অবজেক্টে গ্রুপ করবে। প্রদত্ত তালিকার জন্য আমরা স্ট্রিংটিকে বিভক্ত করেছি - এবং স্ট্রিংয়ের প্রথম অংশটি গ্রুপবাই-এ পাস করি পদ্ধতি।
আসুন এই সমস্যা সমাধানে জড়িত পদক্ষেপগুলি দেখি৷
- স্ট্রিংগুলির তালিকা শুরু করুন।
- itertools মডিউল আমদানি করুন।
- একটি খালি তালিকা শুরু করুন।
- এখন, স্ট্রিং এবং একটি ল্যাম্বডা ফাংশন itertools.groupby-এ পাস করুন পদ্ধতি।
- ল্যাম্বডা ফাংশনটি − দিয়ে বিভক্ত করার পরে স্ট্রিংয়ের প্রথম অংশটি ফিরিয়ে আনতে হবে
- গ্রুপবাই মেথড উপাদান এবং এর গ্রুপ সহ টিপলের একটি তালিকা প্রদান করবে।
- প্রতিটি পুনরাবৃত্তিতে, অনুরূপ উপাদানগুলির গ্রুপকে একটি তালিকায় রূপান্তর করুন।
- খালি তালিকায় তালিকাটি যুক্ত করুন।
- ফলাফল প্রিন্ট করুন।
উদাহরণ
# importing the itertools module import itertools # initializing the strings strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1'] # empty list result = [] # iterator # lambda function will return first part from the string iterator = itertools.groupby(strings, lambda string: string.split('-')[0]) # iterating over the result # element and its group for element, group in iterator: # appending the group by converting it into a list result.append(list(group)) # printing the result print(result)
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ython-1', 'python-2'], ['javascript-1']]
উপসংহার
টিউটোরিয়ালটিতে আপনার কোন সন্দেহ থাকলে, মন্তব্য বিভাগে উল্লেখ করুন।