এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা একটি লিস্ট থেকে সিমিলার সাবস্ট্রিং গ্রুপ করবে। আরও স্পষ্ট বুঝার জন্য একটি উদাহরণ দেখা যাক।
ইনপুট
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 মডিউলের groupby মেথড ব্যবহার করে সমস্যা সমাধান করব। groupby মেথড সমান স্ট্রিংগুলকে একটি ইটার অবজেক্টে গ্রুপ করবে। দেয়া লিস্টের জন্য আমরা স্ট্রিংকে - দিয়ে স্প্লিট করব এবং প্রথম অংশটি groupby মেথডে পাস করব।
এই সমস্যা সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করুন।
- স্ট্রিংসহ লিস্ট ইনিশিয়ালাইজ করুন।
itertoolsমডিউল ইম্পোর্ট করুন।- একটি খালি লিস্ট ইনিশিয়ালাইজ করুন।
- এখন, স্ট্রিংস এবং একটি ল্যাম্বডা ফাংশন itertools.groupby মেথডে পাস করুন।
- ল্যাম্বডা ফাংশনটি
-দিয়ে স্প্লিট করার পর স্ট্রিংয়ের প্রথম অংশ রিটার্ন করবে। - groupby মেথড এলিমেন্ট এবং এর গ্রুপসহ টাপল লিস্ট রিটার্ন করবে।
- প্রতিটি ইটারেশনে, সিমিলার এলিমেন্টের গ্রুপকে একটি লিস্টে কনভার্ট করুন।
- লিস্টকে খালি লিস্টে অ্যাপেন্ড করুন।
- ফলাফল প্রিন্ট করুন।
উদাহরণ
# itertools মডিউল ইম্পোর্ট
import itertools
# স্ট্রিংস ইনিশিয়ালাইজ
strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1']
# খালি লিস্ট
result = []
# ইটেরেটর
# ল্যাম্বডা ফাংশন স্ট্রিংয়ের প্রথম অংশ রিটার্ন করবে
iterator = itertools.groupby(strings, lambda string: string.split('-')[0])
# ফলাফলের ওপর ইটারেট
# এলিমেন্ট এবং তার গ্রুপ
for element, group in iterator:
# গ্রুপকে লিস্টে কনভার্ট করে অ্যাপেন্ড
result.append(list(group))
# ফলাফল প্রিন্ট
print(result)
আউটপুট
যদি আপনি উপরের কোডটি রান করেন, তবে আপনি নিচের ফলাফল পাবেন।
[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ['python-1', 'python-2'], ['javascript-1']]
উপসংহার
যদি টিউটোরিয়ালের বিষয়ে কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।