list

পাইথনে ৬ ধরণের বিল্ট ইন টাইপ আছে। সেগুলো হচ্ছে - numeric, sequence, mapping, class, instance এবং exception. সব থেকে ব্যাসিক ডাটা স্ট্রাকচারটি হচ্ছে sequence. এর প্রত্যেকটি এলিমেন্টের জন্য একটি নাম্বার অ্যাসাইন করা হয় যাকে ইনডেক্স বা পজিশন বলা যায়। প্রথম ইনডেক্স শূন্য, তারপর ১ এবং এরপর ক্রমিক আকারে বাড়তে থাকে।
পাইথনে আবার ৩ ধরণের ব্যাসিক sequence টাইপ আছে যেগুলো হচ্ছে list, tuple, এবং xrange object. এই চ্যাপ্টারে আমরা আলোচনা করবো list নিয়ে।

দুটো স্কয়ার ব্র্যাকেট এবং এর মধ্যে কমা দিয়ে আলাদা আলাদা এলিমেন্ট যুক্ত করে একটি লিস্ট তৈরি করা যায়। আর আগেই বলা হয়েছে, এর এলিমেন্ট গুলো ইনডেক্স অনুযায়ী সাজানো থাকে অর্থাৎ ০, ১, ২ এরকম ক্রমে। যেমন -

words = ["Hello", "world", "!"]
print(words[0])
print(words[1])
print(words[2])

এখানে words একটি লিস্ট টাইপ ভ্যারিয়েবল যার মধ্যে ৩টি এলিমেন্ট আছে যেগুলো হল - Hello, world এবং ! এই তিনটি string। লিস্টের যেকোনো এলিমেন্টকে অ্যাক্সেস করার জন্য ওই লিস্টের নাম, সাথে স্কয়ার ব্র্যাকেটের মধ্যে তার ইনডেক্স নাম্বার দিতে হয়। উপরে যেভাবে তিনটি এলিমেন্ট প্রিন্ট করা হয়েছে, সেভাবে।

আউটপুট,

Hello
world
!

ফাকা list
নিচের মত করে একটি ফাকা লিস্ট তৈরি করা যায় -

my_list = []
print(my_list)

আউটপুট,

[]

এলিমেন্ট টাইপ
পাইথনে একটি লিস্টের মধ্যে বিভিন্ন টাইপের ডাটা বা এলিমেন্ট রাখা যেতে পারে। যেমন একটি লিস্টের এলিমেন্ট হিসেবে কিছু নাম্বার, কিছু স্ট্রিং এমনকি অন্য এক বা একাধিক লিস্টকেও রাখা যেতে পারে। যদিও সাধারণত একটি লিস্টে একই রকম এলিমেন্ট রাখা ভালো প্র্যাকটিস।

উদাহরণ,

number = 1
my_numbers = [number, 2, 3]

things = ["Numbers", 0, my_numbers, 4.56]

print(things[0])
print(things[1])
print(things[2])
print(things[2][2])

আউটপুট,

Numbers
0
[1, 2, 3]
3

list হিসেবে string
একটি স্ট্রিং টাইপ ভ্যালু পাইথনে লিস্ট হিসেবে আচরণ করে অর্থাৎ স্ট্রিং -এর প্রত্যেকটি ক্যারেক্টার একটি কাল্পনিক লিস্টের এক একটি এলিমেন্ট হিসেবে মনে হয়। নিচের উদাহরণটি দেখি,

str = "Hello world!"
print(str[6])

আউটপুট,

w

অর্থাৎ, str = "Hello world!" এবং str = ["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"] কার্যত একই। আর তাই str[6] এর মান আসছে w.