লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 17 নভে., 2024
ইনডেক্সিং এর মাধ্যমে লিস্টের আইটেম এক্সেস (ব্যবহার) করা যায়। এক্ষেত্রে লিস্টটি ট্রাভার্স করার সময় বাম থেকে ডানে মুভ করতে হয়, এবং এর উপাদান গুলোকে কাউন্ট করতে হয় ইনডেক্স নাম্বারের সাহায্যে। ইনডেক্সিং দুভাবে হতে পারে:
১. পজিটিভ নাম্বার ব্যবহার করে, যাকে আমরা পজিটিভ ইনডেক্সিং বলতে পারি। এক্ষেত্রে ইনডেক্স নাম্বার শুরু হয় 0 থেকে ( অর্থাৎ 0, 1, 2, 3……..)।
২. নেগেটিভ নাম্বার ব্যবহার করে, যাকে আমরা নেগেটিভ ইনডেক্সিং বলতে পারি। এক্ষেত্রে ইনডেক্স নাম্বার শুরু হয় -1 থেকে ( অর্থাৎ -1, -2, -3, -4……..)। নিচে চিত্রের মাধ্যমে উভয় প্রকার ইনডেক্সিং দেখানো হলো।
উদাহরণ:
fruits = [ 'Banana', 'Coconat', 'Apple', 'Orange' ]
পজিটিভ ইনডেক্সিং: উপরের fruits নামক লিস্টে ৪ টি আইটেম রয়েছে: Banana, Coconat, Apple, এবং Orange। এখন এই আইটেমগুলো কে আমরা গণনা (কাউন্ট) করব, এবং কাউন্টিং শুরু করব 0 থেকে। অর্থাৎ Banana: 0, Coconat: 1, Apple: 2, এবং Orange: 3 । এখন আমি যদি fruits[0] এর আউটপুট চাই, তাহলে এটি রিটার্ন করবে Banana। এভাবে লিস্টের নামের পরে থার্ড ব্রাকেটের [ ] মধ্যে ইনডেক্স নাম্বার বলে দিয়ে সেই নির্দিষ্ট ইন্ডেক্সের ভ্যালু রিটার্ন করবে।
সুতরাং, fruits[0] এর আউটপুট হবে Banana,
fruits[1] এর আউটপুট হবে Coconat,
fruits[2] এর আউটপুট হবে Apple,
এবং fruits[3] এর আউটপুট হবে Orange।
নেগেটিভ ইনডেক্সিং: এখন এই আইটেমগুলো কে আমরা গণনা (কাউন্ট) করব নেগেটিভ নাম্বার দিয়ে, এবং কাউন্টিং শুরু করব -1 থেকে। এক্ষেত্রে উল্টা দিক থেকে গণনা করতে হবে (ডান থেকে বামে) । অর্থাৎ Orange: -1, Apple: -2, Coconat: -3, এবং Banana: -4। এখন আমি যদি fruits[-1] এর আউটপুট চাই, তাহলে এত রিটার্ন করবে Orange। এভাবে লিস্টের নামের পরে থার্ড ব্রাকেটের [ ] মধ্যে নেগেটিভ ইনডেক্স নাম্বার বলে দিয়ে সেই নির্দিষ্ট ইন্ডেক্সের ভ্যালু রিটার্ন করবে।
সুতরাং, fruits[-1] এর আউটপুট হবে Orange,
fruits[-2] এর আউটপুট হবে Apple,
fruits[-3] এর আউটপুট হবে Coconat,
এবং fruits[-4] এর আউটপুট হবে Banana।
পাইথন কোডে পজিটিভ ইনডেক্সিং (Positive Indexing) এর ব্যবহার।
কোড:
fruits = [ 'Banana', 'Coconat', 'Apple', 'Orange' ]
print('fruits: ', fruits)
print(fruits[0])
print(fruits[1])
print(fruits[2])
print(fruits[3])
print(fruits[4])
উপরের লিষ্টের মধ্যে ৪ টি আইটেম রয়েছে, সুতরাং ইনডেক্স নাম্বার হবে 0 থেকে 3 পর্যন্ত। কিন্তু আমি সপ্তম লাইনে 4 নাম্বার ইন্ডেক্সের ভ্যালু প্রিন্ট করতে চেয়েছি, যেহেতু এখানে 4 নাম্বার ইনডেক্স নাই, তাই পাইথন একটি এরর (list index out of range) দিয়েছে। যার অর্থ হলো: লিস্টের ইনডেক্স রেঞ্জের বাইরে চলে গেছে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।
আউটপুট:
fruits: ['Banana', 'Coconat', 'Apple', 'Orange']
Banana
Coconat
Apple
Orange
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
পাইথন কোডে নেগেটিভ ইনডেক্সিং(Negative Indexing) এর ব্যবহার।
কোড:
fruits = [ 'Banana', 'Coconat', 'Apple', 'Orange' ]
print('fruits: ', fruits)
print(fruits[-1])
print(fruits[-2])
print(fruits[-3])
print(fruits[-4])
print(fruits[-5])
উপরের লিষ্টের মধ্যে ৪ টি আইটেম রয়েছে, সুতরাং (নেগেটিভ) ইনডেক্স নাম্বার হবে -1 থেকে -4 পর্যন্ত। কিন্তু আমি সপ্তম লাইনে -5 ইন্ডেক্সের ভ্যালু প্রিন্ট করতে চেয়েছি, যেহেতু এখানে -5 ইনডেক্স নাই, তাই পাইথন একটি এরর (list index out of range) দিয়েছে। যার অর্থ হলো: লিস্টের ইনডেক্স রেঞ্জের বাইরে চলে গেছে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।
আউটপুট:
fruits: ['Banana', 'Coconat', 'Apple', 'Orange']
Orange
Apple
Coconat
Banana
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
এখন আমি ফর লুপের সাহায্যে ইনডেক্সিংএর ব্যবহার দেখাব।
কোড:
animals = [ 'bird', 'cow', 'rat', 'snake', 'mouse', 'lion', 'tiger' ]
print('animals: ', animals)
print('Total elements of list: ', len(animals))
for i in range(len(animals)):
print('list item at', i , ':', animals[i])
print('\n')
উপরের কোডের প্রথম লাইনে animals লিষ্টের মধ্যে ৭ টি আইটেম রয়েছে। দ্বিতীয় লাইনে আমি লিস্টটি প্রিন্ট করেছি। তৃতীয় লাইনে len() ফাংশন ব্যবহার করে এর মোট আইটেমে সংখ্যা বের করেছি। চতুর্থ লাইনে লিস্ট এর উপর লুপ চালিয়েছি যাতে প্রতিটি আইটেম তার ইনডেক্স নাম্বারসহ প্রিন্ট করতে পারি। এখানে range(len(animals)) এর অর্থ হলো: range(7), যা 0 থেকে 6 পর্যন্ত মোট ৭ বার চলবে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।
আউটপুট:
animals: ['bird', 'cow', 'rat', 'snake', 'mouse', 'lion', 'tiger']
Total elements of list: 7
list item at 0 : bird
list item at 1 : cow
list item at 2 : rat
list item at 3 : snake
list item at 4 : mouse
list item at 5 : lion
list item at 6 : tiger
0