ইনডেক্সিং এর মাধ্যমে লিস্টের আইটেম এক্সেস (ব্যবহার) করা

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 03 মে, 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