এই আর্টিকেলে আমরা পাইথন ৩.x-এ ইটারেটর বাস্তবায়ন এবং তার কার্যকর ব্যবহার শিখব। পাইথনে ইটারেটর বাস্তবায়ন করার বিভিন্ন মেথড দেখি।
টাইপ ১ - ননोन লেন্থসহ While Loop বাস্তবায়ন
উদাহরণ কোড
genre = ("Python", "C", "C++", "Java")
print("The topics available on Tutorial's Point are:")
i = 0
while (i < len(genre)):
print(genre[i])
i += 1ব্যাখ্যা
কম কম্প্যাক্ট স্ট্রাকচারের কারণে এই পদ্ধতি প্রিয় নয়। এরর হ্যান্ডলিংও এই কেসে কঠিন। বড় স্কেলের প্রোগ্রাম বা ডিজাইন এই পদ্ধতি ব্যবহার করে না।
আউটপুট
The topics available on Tutorial's Point are: Python C C++ Java
টাইপ ২ - ননोन লেন্থসহ for loop বাস্তবায়ন
উদাহরণ কোড
genre = ("Python", "C", "C++", "Java")
print("The topics available on Tutorial's Point are:")
for i in range(len(genre)):
print(genre[i])ব্যাখ্যা
এটি প্রোগ্রামারদের দ্বারা সবচোয়ে ফেভার করা মেথড। এখানে range() ফাংশন ইটারেটর ইনক্রিমেন্ট/ডিক্রিমেন্টের মিডিয়াম হিসেবে কাজ করে। ডিফল্টলি এটি ইটারেটর ১ দিয়ে ইনক্রিমেন্ট করে। যদি আমরা ইনক্রিমেন্ট বা ডিক্রিমেন্টের স্টেপ নির্দিষ্ট করি, তবে সেটি প্রদত্ত স্টেপ ভ্যালু অনুযায়ী কাজ করে।
আউটপুট
The topics available on Tutorial's Point are: Python C C++ Java
টাইপ ৩ - লেন্থ ছাড়া for loop বাস্তবায়ন
উদাহরণ কোড
genre = ("Python", "C", "C++", "Java")
print("The topics available on Tutorial's Point are:")
for i in genre:
print(i)ব্যাখ্যা
এই পদ্ধতি সাধারণত লিনিয়ার ডেটা স্ট্রাকচার যেমন লিস্ট, ডিকশনারি, টাপল, n-ডাইমেনশনাল অ্যারে ইত্যাদিতে ফেভার করা হয়। ইটারেটর নির্দিষ্ট স্ট্রাকচারের প্রতিটি কম্পোনেন্ট ট্রাভার্স করে ডেটা কনসোলে ডিসপ্লে করে। ইনক্রিমেন্টেশন এই টাইপে অটোমেটিক।
আউটপুট
The topics available on Tutorial's Point are: Python C C++ Java
টাইপ ৪ - Enumerate ডেটা টাইপ দিয়ে বাস্তবায়ন
উদাহরণ কোড
genre = ("Python", "C", "C++", "Java")
iterator = enumerate(genre)
print("The topics available on Tutorial's Point are:")
for i, v in iterator:
print(v, end="\t")ব্যাখ্যা
এই কেসে enumerate আমাদের একটি ডিকশনারি তৈরি করতে সাহায্য করে যেখানে ইনডেক্সগুলো কি হিসেবে এবং লিস্টের ভ্যালুগুলো তাদের সংশ্লিষ্ট ভ্যালু হিসেবে কাজ করে। এখানে দুটি ইটারেটর নির্দিষ্ট করতে হয়: একটি ইনডেক্সের জন্য এবং অন্যটি ডিসপ্লে করার ভ্যালুর জন্য।
আউটপুট
The topics available on Tutorial's Point are: Python C C++ Java
টাইপ ৫ - Zip ফাংশন দিয়ে বাস্তবায়ন
উদাহরণ কোড
genre = ("Python", "C", "C++", "Java")
extras = ["C#", "Dart", "Erlang", "Go"]
print("The topics available on Tutorial's Point are:")
for i, j in zip(genre, extras):
print(i, j, sep="\t")ব্যাখ্যা
এখানে আমরা দুটি লিনিয়ার ডেটা স্ট্রাকচার (লিস্ট, অ্যারে বা টাপল) দুইটি ইটারেটর দিয়ে নির্দিষ্ট করি। এজন্য zip ফাংশন খুব কাজে আসে বিভিন্ন সিনেরিও হ্যান্ডেল করতে। এটি ছোট দৈর্ঘ্যের ডেটা স্ট্রাকচার নেয় এবং বড় ডেটা স্ট্রাকচার কনটেন্ট স্কিপ করে।
আউটপুট
The topics available on Tutorial's Point are: Python C# C Dart C++ Erlang Java Go
উপসংহার
এই আর্টিকেলে আমরা পাইথন ৩.x-এ Stack ও Queue ডেটা স্ট্রাকচার বাস্তবায়ন শিখেছি। আপনি একই অ্যালগরিদম ব্যবহার করে যেকোনো অন্য প্রোগ্রামিং ল্যাঙ্গুয়েজে stack/queue ডিটেক্টর প্রোগ্রাম বাস্তবায়ন করতে পারেন।