লিস্ট পাইথন ৩-এ একটি বিল্ট-ইন ডেটা স্ট্রাকচার। পাইথন লিস্ট ব্যবহার করা যায় ডেটা অর্গানাইজ এবং অর্ডারড ভাবে সংরক্ষণ করতে, যেমন একটি ম্যানুফ্যাকচারিং কোম্পানির সাপ্লায়ারদের নাম, একটি কোম্পানির কর্মচারীদের স্যালারি ইনফরমেশন, ছাত্রদের গ্রেড লিস্ট, বা অন্য কিছু।
পাইথনে বেশ কিছু বিল্ট-ইন ফাংশন রয়েছে যেগুলো আমরা লিস্টে সংরক্ষিত ডেটা পরিবর্তন বা ম্যানিপুলেট করতে ব্যবহার করতে পারি।
এই গাইডে, আমরা লিস্টের সাথে কাজ করার জন্য সবচেয়ে উপকারী কিছু বিল্ট-ইন মেথড ব্রেক ডাউন করব। আমরা এক্সপ্লোর করব কীভাবে লিস্টে এলিমেন্ট যোগ এবং রিমুভ করতে হয়, লিস্টের এলিমেন্ট কাউন্ট করা, লিস্ট রিভার্স করা, এবং আরও অনেক কিছু।
লিস্ট রিফ্রেশার
লিস্ট পাইথনে একটি ডেটা টাইপ যা মিউটেবল, অর্ডারড আইটেমের অ্যারেঞ্জমেন্ট। এর মানে লিস্ট পরিবর্তন করা যায়, এবং ডেটা নির্দিষ্ট অর্ডারে সংরক্ষণ করা হয়।
লিস্টের প্রতিটি এলিমেন্টকে item বলা হয়, এবং লিস্ট কমা-সেপারেটেড ভ্যালু স্কোয়ার ব্র্যাকেট ([]) দিয়ে এনক্লোজড থাকায় ডিফাইন করা হয়।
পাইথনে লিস্ট তৈরির পদ্ধতি:
news_sites = ["New York Times", "Washington Post", "CNN", "BuzzFeed"]
আমাদের লিস্ট প্রিন্ট করতে, আমরা print() ফাংশন ব্যবহার করতে পারি:
print(news_sites)
আমাদের প্রোগ্রাম আমাদের অরিজিনাল অ্যারে রিটার্ন করে যেমন আমরা ডিফাইন করেছি:
['New York Times', 'Washington Post', 'CNN', 'BuzzFeed']
পাইথন লিস্ট থেকে একটি নির্দিষ্ট এলিমেন্ট রিট্রিভ করতে, আমাদের অবশ্যই এলিমেন্টের ইনডেক্স রেফারেন্স করতে হবে। লিস্টের প্রতিটি আইটেমের একটি ইনডেক্স নম্বর রয়েছে, 0 থেকে শুরু করে, যা আমাদের একটি ইনডিভিডুয়াল এলিমেন্টের কন্টেন্ট রিট্রিভ করতে দেয়। আমাদের তৈরি করা লিস্টের ইনডেক্স ভ্যালুগুলো:
| New York Times | Washington Post | CNN | BuzzFeed |
| 0 | 1 | 2 | 3 |
এখন যেহেতু আমরা আমাদের লিস্ট এলিমেন্টের ইনডেক্স নম্বর জানি, আমরা আমাদের লিস্ট থেকে একটি নির্দিষ্ট ভ্যালু রিট্রিভ করতে পারি। এটি করতে, আমরা নিচের কোড ব্যবহার করতে পারি:
print(news_sites[0])
আমাদের কোড রিটার্ন করে: New York Times। একইভাবে, যদি আমরা ইনডেক্স ভ্যালু 2 가진 লিস্ট আইটেম রেফারেন্স করি, আমাদের কোড CNN রিটার্ন করবে।
আমাদের লিস্টের প্রতিটি আইটেমের একটি নেগেটিভ ইনডেক্স নম্বরও রয়েছে। এটি আমাদের লিস্টে পিছোন দিয়ে কাউন্ট করতে দেয় এবং উপকারী হয় যদি আমাদের লিস্টে বড় সংখ্যক ভ্যালু থাকে এবং আমরা সেই লিস্টের শেষের দিকে থাকা একটি ভ্যালু রিট্রিভ করতে চাই।
উপরের লিস্টের নেগেটিভ ইনডেক্স ভ্যালুগুলো:
| New York Times | Washington Post | CNN | BuzzFeed |
| -4 | -3 | -2 | -1 |
আমরা যদি ইনডেক্স পজিশন -1 এর আইটেম পেতে চাই, নিচের কোড ব্যবহার করতে পারি:
print(news_sites[-1])
আমাদের কোড রিটার্ন করে: BuzzFeed।
এখন যেহেতু আমরা পাইথন লিস্টের বেসিকস কভার করেছি, আমরা পাইথনের লিস্ট মেথড এক্সপ্লোর করা শুরু করতে পারি।
list.append() ব্যবহার করে এলিমেন্ট যোগ করা
list.append() মেথড আপনাকে একটি লিস্টের শেষে একটি আইটেম যোগ করতে দেয়। পিজা ফ্লেভার সংরক্ষণকারী একটি লিস্টের উদাহরণ:
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni"]
আমাদের লিস্ট পাঁচটি ভ্যালু দিয়ে গঠিত, ইনডেক্স ভ্যালু 0 থেকে শুরু করে 4 এ শেষ হয়। কিন্তু যদি আমরা আমাদের লিস্টে একটি মিট-লভারস অপশন যোগ করতে চাই? আমরা append() মেথড ব্যবহার করে এই অ্যাকশন পারফর্ম করতে পারি।
append() ব্যবহার করে আমাদের লিস্টে Meat-Lovers যোগ করার উদাহরণ:
flavors.append("Meat-Lovers")
print(flavors)
আমাদের কোড আমাদের রিভাইজড লিস্ট রিটার্ন করে Meat-Lovers শেষে:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
list.insert() ব্যবহার করে লিস্টে ইনসার্ট করা
append() মেথড আপনাকে একটি লিস্টের শেষে আইটেম যোগ করতে দেয়, কিন্তু আপনি যদি একটি নির্দিষ্ট ইনডেক্স পজিশনে আইটেম যোগ করতে চান, insert() মেথড লিস্টে যেকোনো জায়গায় আইটেম ইনসার্ট করবে।
ধরুন, আমাদের পিজা শেফ জ্যালাপেনো পেপার দিয়ে একটি ইন-হাউস স্পেশাল বানাচ্ছেন এবং সেটি মেনুতে যোগ করার জন্য প্রস্তুত। শেফ চান এই পিজা আমাদের ফ্লেভার লিস্টের টপে আসুক, যাতে নতুন কাস্টমাররা পিজা ট্রাই করতে উৎসাহিত হোন।
আমরা insert() মেথড ব্যবহার করে এই গোয়াল অর্জন করতে পারি। insert() মেথড দুটি আর্গুমেন্ট নেয়: যে ইনডেক্স পজিশনে আপনি আইটেম যোগ করতে চান এবং আপনি আপনার লিস্টে যে আইটেম যোগ করতে চান। insert() ব্যবহার করে Jalapeno Special ফ্লেভার লিস্টের শুরুতে যোগ করার উদাহরণ:
flavors.insert(0, "Jalapeno Special") print(flavors)
আমাদের কোড নিচের লিস্ট রিটার্ন করে:
['Jalapeno Special', 'Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
দেখতে পাচ্ছেন, Jalapeno Special আমাদের লিস্টের শুরুতে যোগ হয়েছে, এবং ইনডেক্স নম্বর 0 অ্যাসাইন হয়েছে। আমাদের লিস্টের বাকি সব আইটেম আপ হয়ে গেছে, এবং তাই তাদের লিস্টে নতুন পজিশন অনুযায়ী নতুন ইনডেক্স নম্বর মিলেছে। Ham and Pineapple, উদাহরণস্বরূপ, এখন ইনডেক্স ভ্যালু 1 পেয়েছে, এবং如此 далее।
list.remove() ব্যবহার করে লিস্ট থেকে রিমুভ করা
পাইথন লিস্ট থেকে একটি আইটেম রিমুভ করতে, আমরা list.remove() মেথড ব্যবহার করতে পারি। এই মেথড লিস্ট থেকে প্রথম আইটেমটি রিমুভ করে যার ভ্যালু আমাদের স্পেসিফাই করা ভ্যালুর সমান।
এক সপ্তাহ Jalapeno Special ট্রায়ালের পর, স্পষ্ট হয়েছে পিজা কিচেনের কাস্টমাররা ফ্লেভার পছন্দ করেন না। তাই শেফ এটি মেনু থেকে রিমুভ করতে চান যতক্ষণ না সে রেসিপি রিফাইন করে। নিচের কোড দিয়ে আমরা Jalapeno Special আমাদের লিস্ট থেকে রিমুভ করতে পারি:
flavors.remove("Jalapeno Special")
print(flavors)
আমাদের কোড Jalapeno Special ছাড়া রিভাইজড লিস্ট রিটার্ন করে:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
remove() মেথড সম্পর্কে কিছু জিনিস জানা দরকার। প্রথমে, আপনি যদি একটি লিস্টে অস্তিত্বহীন আইটেম রিমুভ করার চেষ্টা করেন, not in list. এরর আসবে। দ্বিতীয়ে, remove() মেথড শুধু লিস্ট আইটেমের প্রথম ইনস্ট্যান্স রিমুভ করে। আপনার লিস্টে দুটি Jalapeno Specials থাকলে, উভয় রিমুভ করতে remove() মেথড দুবার রান করতে হবে।
list.pop() ব্যবহার করে লিস্ট থেকে রিমুভ করা
list.pop() মেথড ব্যবহার করা যায় একটি লিস্ট থেকে আইটেম রিমুভ এবং রিটার্ন করতে।
pop() মেথড একটি অপশনাল আর্গুমেন্ট নেয়: আমরা যে এলিমেন্ট রিমুভ করতে চাই সেটির ইনডেক্স ভ্যালু। আপনি যদি ইনডেক্স স্পেসিফাই না করেন, pop() আমাদের লিস্টের শেষ আইটেমটি রিটার্ন এবং রিমুভ করবে।
আমাদের পিজা কিচেন 決定 করেছে Meat-Lovers পিজাটি স্পেশাল মেনুতে সরাতে হবে, যেটি শেফের নতুন এক্সপেরিমেন্টাল পিজার রেঞ্জ ধারণ করে। তাই শেফ ফ্লেভার লিস্ট থেকে Meat-Lovers রিমুভ করতে চান।
Meat-Lovers (যার ইনডেক্স ভ্যালু 5) আমাদের লিস্ট থেকে রিমুভ করার কোড:
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni", "Meat-Lovers"] print(flavors.pop(5)) print(flavors)
আমাদের কোড রিটার্ন করে:
Meat-Lovers ['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni']
দেখতে পাচ্ছেন, pop() ফাংশন আমাদের স্পেসিফাই করা ভ্যালু রিমুভ করল এবং আমাদের রিমুভ করা লিস্ট আইটেমের ভ্যালু রিটার্ন করল, এই কেসে Meat-Lovers। তারপর, আমরা নতুন লিস্ট প্রিন্ট করেছি, যেটি আর Meat-Lovers অন্তর্ভুক্ত করে না।
list.extend() ব্যবহার করে একাধিক লিস্ট কম্বাইন করা
list.extend() মেথড পাইথনে একাধিক লিস্ট কম্বাইন করতে ব্যবহার করা যায়। extend() মেথড একটি আর্গুমেন্ট নেয়: যে লিস্ট অবজেক্ট আপনি একটি এক্সিস্টিং লিস্টে যোগ করতে চান।
আমাদের পিজা শেফ ঠান করেছেন স্পেশাল মেনুটি স্ট্যান্ডার্ড মেনুতে মার্জ করা উচিত কারণ কাস্টমাররা দুটি আলাদা মেনুতে বিভ্রান্ত হচ্ছেন। উভয় মেনু মার্জ করতে আমরা নিচের কোড ব্যবহার করব:
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni"] special_menu = ["Meat-Lovers", "BBQ Chicken", "Sausage and Pepperoni", "Vegetarian Special", "Greek"] flavors.extend(special_menu) print(flavors)
আমাদের প্রোগ্রাম নিচের আউটপুট রিটার্ন করে:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers', 'BBQ Chicken', 'Sausage and Pepperoni', 'Vegetarian Special', 'Greek']
দেখতে পাচ্ছেন, আমাদের flavors লিস্ট এখন আমাদের পুরনো ফ্লেভার লিস্ট এবং আমাদের special_menu লিস্ট উভয়ের আইটেম অন্তর্ভুক্ত করছে।
list.copy() ব্যবহার করে লিস্ট কপি করা
list.copy() মেথড আপনাকে একটি লিস্টের কপি তৈরি করতে দেয়। এটি উপকারী হয় যদি আপনি একটি লিস্ট ম্যানিপুলেট করতে চান কিন্তু অরিজিনাল লিস্ট ইনট্যাক্ট রাখতে চান, যাতে পরবর্তীতে রেফারেন্স করতে পারেন।
আমাদের পিজা শেফ আরও এক্সপেরিমেন্ট করার সিদ্ধান্ত নিয়েছেন, মেনুতে দুটি নতুন পিজা যোগ করছেন। তবে, সে অরিজিনাল মেনুর লিস্ট রেফারেন্সের জন্য রাখতে চান।
নিচের কোড দিয়ে আমরা মেনুর একটি কপি তৈরি করতে পারি, যেটিতে সে তার নতুন পিজা যোগ করতে পারবেন অরিজিনাল লিস্ট প্রিজার্ভ করে:
new_menu = menu.copy() print(menu)
আমাদের কোড রিটার্ন:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers', 'BBQ Chicken', 'Sausage and Pepperoni', 'Vegetarian Special', 'Greek']
এখন, আমাদের একই ভ্যালু সহ দুটি লিস্ট রয়েছে: flavors এবং new_menu। তাই, শেফ new_menu-কে আল্টার করতে পারবেন, flavors লিস্ট ইনট্যাক্ট রেখে।
list.sort() ব্যবহার করে লিস্ট সর্ট করা
list.sort() মেথড লিস্টে আইটেম সর্ট করতে ব্যবহার করা যায়।
আমাদের শেফ ঠান করেছেন আমাদের লিস্ট অ্যালফাবেটিক্যাল অর্ডারে সর্ট করা উচিত, যাতে লোকেরা সহজে পিজা খুঁজে পান। নিচের কোড sort() ব্যবহার করে আমাদের লিস্টকে অ্যালফাবেটিক্যাল অর্ডারে সাজিয়েছে:
flavors.sort() print(flavors)
আমাদের কোড রিটার্ন:
['BBQ Chicken', 'Cheese', 'Chicken', 'Greek', 'Ham and Pineapple', 'Meat-Lovers', 'Mexican', 'Pepperoni', 'Sausage and Pepperoni', 'Vegetarian Special']
আপনি নম্বরের লিস্টেও sort() ফাংশন ব্যবহার করতে পারেন, যেটি অ্যাসেন্ডিং অর্ডারে সাজানো হবে।
list.reverse() ব্যবহার করে লিস্ট রিভার্স করা
list.reverse() মেথড লিস্টে আইটেমের অর্ডার রিভার্স করতে ব্যবহার করা যায়।
এই ফাংশন লিস্টকে ডিসেন্ডিং অর্ডারে সর্ট করে না বরং আমাদের লিস্টের প্রতিটি আইটেমের অর্ডার ফ্লিপ করে। তাই আমাদের লিস্টের শেষ আইটেম আমাদের নতুন লিস্টের প্রথম আইটেম হয়ে যায়, এবং দ্বিতীয় শেষ আইটেম দ্বিতীয় আইটেম হয়ে যায়, এবংكذا।
আমাদের পিজা শেফ ঠান করেছেন পিজার লিস্ট ডিসেন্ডিং অর্ডারে আরেঞ্জ করা উচিত, কারণ সে মেনুর বটম থেকে সেল্স গ্রোথ নোটিস করেছেন। আমাদের লিস্ট রিভার্স করার কোড:
flavors = ['BBQ Chicken', 'Cheese', 'Chicken', 'Greek', 'Ham and Pineapple', 'Meat-Lovers', 'Mexican', 'Pepperoni', 'Sausage and Pepperoni', 'Vegetarian Special'] flavors.reverse() print(flavors)
আমাদের কোড নিচের আউটপুট রিটার্ন করে:
['Vegetarian Special', 'Sausage and Pepperoni', 'Pepperoni', 'Mexican', 'Meat-Lovers', 'Ham and Pineapple', 'Greek', 'Chicken', 'Cheese', 'BBQ Chicken']
দেখতে পাচ্ছেন, Vegetarian Special আমাদের অরিজিনাল লিস্টে শেষ আইটেম ছিল, এবং এখন এটি প্রথম—আমাদের লিস্ট রিভার্স হয়েছে।
list.clear() ব্যবহার করে লিস্ট ক্লিয়ার করা
list.clear() মেথড আপনাকে একটি লিস্টের সব ভ্যালু রিমুভ করতে দেয়।
নতুন মাস পিজা কিচেনে দস্তক দিয়েছে, এবং তাই শেফ জানুয়ারির সেলস লিস্ট ক্লিয়ার করে ফেব্রুয়ারির জন্য একটি নতুন লিস্ট শুরু করতে চান। আমাদের sales লিস্ট ক্লিয়ার করে ফেব্রুয়ারির জন্য জায়গা করার কোড:
sales.clear() print(sales)
আমাদের কোড কোনো ভ্যালু না থাকা একটি লিস্ট রিটার্ন করে: []।
উপসংহার
লিস্ট মিউটেবল, অর্ডারড আইটেমের অ্যারেঞ্জমেন্ট যা সিমিলার ডেটা সংরক্ষণ করতে ব্যবহার করা হয়। এই টিউটোরিয়ালে, আমরা কিছু সবচেয়ে कॉमन পাইথন লিস্ট মেথড ব্রেক ডাউন করেছি, যেগুলো আমাদের লিস্ট ম্যানিপুলেট করতে এবং আমাদের লিস্টের ডেটা সম্পর্কে ইনসাইট পেতে ব্যবহার করা যায়।
এই আর্টিকেলে আমরা append(), insert(), remove(), pop(), extend(), copy(), sort(), reverse(), এবং clear() লিস্ট মেথড কীভাবে ব্যবহার করতে হয় কভার করেছি, এবং প্রতিটি মেথডের উদাহরণ এক্সপ্লোর করেছি।
এখন আপনি পাইথন লিস্ট মেথড এক্সপার্টের মত কাজ করার জন্য প্রস্তুত!