পাইথন – list

আমাদের যদি অনেক গুলো ডেটা দেওয়া হয়, আমরা সাধারণত লিস্ট করে রাখি, তাই না? যেমন আপনার যদি অনেক গুলো ফ্রেন্ড থাকে, তাদের আলাদা আলাদা ভাবে লিখতে গেলে আপনাকে অনেক গুলো ভ্যারিয়েবল ডিক্লেয়ার করতে হবে। তা না করে আমরা করতে পারি কি, ফ্রেন্ডদের একটা লিস্ট তৈরি করে ফেলতে পারি। ঐ লিস্টের ভেতর সব গুলো ফ্রেন্ড কে যুক্ত করে দিব। এভাবেঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]

উপরে আমাদের ফ্রেন্ড লিস্টে মোট ৫ জন ফ্রেন্ড রয়েছে। এগুলোকে আমরা বলব আইটেম। এখন আমরা যদি ফ্রেন্ড লিস্ট এর প্রথম আইটেম প্রিন্ট করতে চাই, তাহলে লিখবঃ

print friens[0]

ফ্রেন্ড লিস্ট এর দ্বিতীয় আইটেম প্রিন্ট করতেঃ

print (frineds[1])

ফ্রেন্ড লিস্ট এর তৃতীয় আইটেম প্রিন্ট করতেঃ

print frineds[2]

এখানে ০ , 1, 2 এগুলোকে বলে লিস্টের ইনডেক্স। লিস্টের ইনডেক্স শুর হয় ০ থেকে। তো উপরের লিস্টের শেষ আইটেমটি প্রিন্ট করতে আমরা লিখবঃ

print (friends[4])

সব গুলো ফ্রেন্ড এর নাম পেতে আমরা লিখবঃ

print (friends)

যা আপনার সব গুলো ফ্রেন্ড এর নাম প্রিন্ট করবেঃ

['Shubo', 'Tuhin', 'Tanvir', 'Dipu', 'Siyam']

লিস্টের কোন আইটেম পাওয়ার জন্য আমরা নেগেটিভ ইন্ডেক্সও ব্যবহার করতে পারি। যেমন -1 ব্যবহার করলে লিস্টের সর্বশেষ আইটেম প্রিন্ট করবে। -2 ব্যবহার করলে লিস্টের শেষের দিক থেকে দ্বিতীয় আইটেম প্রিন্ট করবে।

print (friends[-1])

লিখলে প্রিন্ট করবে Siyam।

print (friends[-2])

লিখলে প্রিন্ট করবে Dipu এভাবে।
আমরা যদি এমন একটা ইন্ডেক্স এক্সেস করতে চাই, যা লিস্টে নেই, তাহলে ইরর দিবে। যেমন আমাদের লিস্টে আছে মাত্র ৫টা আইটেম। আমরা চাইলে ৪ ইন্ডেক্স পর্যন্ত এক্সেস করতে পারব। এখন যদি ৫ বা এর থেকে বড় কোন ইন্ডেক্স এক্সেস করতে চাই, তাহলে এরর দিবে।

print (friends[10])

লিখে যদি আমরা প্রোগ্রামটি রান করি, তাহলে একটা এরর দিবে।

append()

ধরে নিচ্ছি আপনি নতুন একটা ফ্রেন্ড এর সাথে পরিচিত হয়েছেন। এখন তাকে আপনার ফ্রেন্ড লিস্টে যুক্ত করতে চাচ্ছেন, এই যুক্ত করাকে বলে append. আর তা লিখব এভাবেঃ

friends.append("Mahir")

তাহলে আপনার ফ্রেন্ড লিস্টে মোট ফ্রেন্ড সংখ্যা ৬ টি। ষষ্ট ফ্রেন্ড দেখতে চাইলে প্রিন্ট করঃ

print (friends[5])

সম্পুর্ণ প্রোগ্রামঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]

friends.append("Mahir")

print (friends[5])

len()

ধরে নিচ্ছি অনেক গুলো ফ্রেন্ড লিস্টে যুক্ত করা হয়েছে। এখন আপনি জানতে চাচ্ছেন আপনার টোটাল কয়টা বন্ধু রয়েছে, তা আমরা জানতে পারি len() মেথড দিয়ে।

len(friends)

লিখলে ফ্রেন্ড লিস্টে কয়েটি ফ্রেন্ড রয়েছে, তা আমরা জেনে যাবো। অর্থাৎ কোন লিস্টে কয়টা আইটেম রয়েছে, তা জানার জন্য len() ব্যবহার করা হয়।

এই লিস্টকে অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ এ বলা হয় অ্যারে। লিস্টে অ্যারে থেকে ভালো কিছু সুবিধে পাওয়া যায়।
মনে করি একটা ফ্রেন্ড এর সাথে জগড়া হয়েছে, ধরে নিচ্ছি Tuhin এর সাথে। আপনি তাকে আর ফ্রেন্ড লিস্টে রাখতে চাচ্ছেন না। তখন আমরা করব কি, রিমুভ করে দিব। তার জন্যঃ
friends.remove(‘Tuhin’)

সম্পুর্ণ প্রোগ্রামঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
print (friends)
friends.remove('Tuhin')
print (friends)

প্রথমে আমরা ফ্রেন্ডলিস্টের সকল ফ্রেন্ডকে প্রিন্ট করেছি। এরপর Tuhin কে রিমুভ করেছি। এবং রিমুভ করার পর আবার ফ্রেন্ড লিস্ট প্রিন্ট করেছি, দেখছি যে ফ্রেন্ড লিস্টে Tuhin আর নেই।
del
আরেক ভাবেও আমরা ফ্রেন্ডকে ডিলেট করতে পারি, delete সংক্ষেপে del দিয়ে। তখন আমরা ফ্রেন্ড এর নামের পরিবর্তে ফ্রেন্ড এর ইনডেক্স ব্যবহার করব। যেমন Tuhin এর ইন্ডেক্স হচ্ছে 1. তাকে ডিলেট করার জন্য লিখবঃ

del friends[1]

সম্পুর্ণ প্রোগ্রামঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
print (friends)
del friends[1]
print (friends)

ধরে নিচ্ছি আপনার ফ্রেন্ড লিস্ট অনেক বড়। তো আপনার এক দিন ইচ্ছে হলো যাদের সাথে কম কথা হয়, তাদের সবাইকে এক সাথে ডিলেট করে দিবেন। তার জন্য ধরি ইনডেক্স 1 থেকে 4পর্যন্ত। তখন আমরা লিখব এভাবেঃ

del friends[1:4]

যেটা করবে কি, ইনডেক্স এক থেকে 4 এর আগ সব গুলো ফ্রেন্ডকে রিমুভ করে দিবে। চতুর্থ ইন্ডেক্স রিমুভ করবে না। রিমুভ করবে, ইন্ডেক্স 1, 2 এবং 3 । যদি চতুর্থ ইনডেক্সে থাকা ফ্রেন্ডকেও রিমুভ করতে চান, তার জন্য লিখতে হবেঃ

del friends[1:5]

এখানে 1:5 মানে হচ্ছে রেঞ্জ। কত থেকে কত। আমরা 2:10 দিতে পারি। তো 2:10 দিলে 2 থেকে 9 পর্যন্ত ইন্ডেক্সে থাকা সব গুলো ফেন্ড রিমুভ করবে।
সম্পুর্ণ একটা প্রোগ্রামঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
print (friends)
del friends[1:4]
print (friends)

ফ্রেন্ড লিস্টের লাস্ট ফ্রেন্ডের সাথে যোগাযোগ কম হয়, তাই আপনি চাচ্ছেন তাকে রিমুভ করে দিতে, এবং তা একটা ভ্যারিয়েবলে রাখবে। তার জন্য ব্যবহার করা যাবে pop. লিখব এভাবেঃ

removed = friends.pop()

সম্পুর্ণ প্রোগ্রামঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
removed = friends.pop()
print (removed + " removed from friend list") 

দেখুন না, আপনার ফ্রেন্ড লিস্ট থেকে শেষ বন্ধুটি রিমুভ হয়ে গেছে। pop দিয়ে আমরা চাইলে একটা নির্দিষ্ট ইনডেক্স এর বন্ধুকেও রিমুভ করতে পারি, তার জন্যঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
removed =  friends.pop(3)
print (removed + " removed from friend list") 

উপরের প্রোগ্রাম করবে কি, 3 নং ইন্ডেক্সে থাকা বন্ধুটিকে রিমুভ করে দিব এবং তা রিটার্ন করে removed নামক ভ্যারিয়েবলে রাখবে। পরে আমরা removed ভ্যারিয়েবলটি প্রিন্ট করেছি।
sort()
আপনি যদি আপনার ফ্রেন্ডদেরকে নাম অনুযায়ী সাজাতে চান, তাহলে আমরা করব কি সর্ট করে নিব। তা লিখব এভাবেঃ

friends.sort()

তাহলে আমাদের লিস্টকে সুন্দর করে সর্ট / সাজিয়ে দিবে, যেন কোন আইটেম সহজেই খুজে পেতে পারি।

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
friends.sort()
print (friends)

clear()

একদিন আপনার খুব রাগ উঠছে, আপনি আর কারো সাথে কথা বলতে চাচ্ছেন না। সবার সাথে কথা বলা বন্ধ করে দিতে ইচ্ছে করছে। তখন তো ফ্রেন্ড লিস্টকে ক্লিয়ার করে দিবেন, তাই না? তার জন্যঃ

friends.clear()

এখন আর আপনার লিস্টে কোন ফ্রেন্ড নেই। :'(

এতক্ষণ আমরা যে লিস্ট নিয়ে কাজ করেছি, তা ছিল একটা স্ট্রিং লিস্ট। যার সব গুলো আইটেমই ছিল এক একটা স্ট্রিং। আমরা চাইলে নাম্বার লিস্ট নিয়েও কাজ করতে পারি। যেমন:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

যা একটি ইন্টিজার লিস্ট। আমরা চাইলে উপরের ফ্রেন্ড লিস্টের মত যে কোন আইটেম এক্সেস করতে পারি, নতুন আইটেম যুক্ত করতে পারি।

পাইথনে একটা মজার সুবিধে হচ্ছে ভিন্ন ভিন্ন ডেটা টাইপ একই লিস্টে রাখা যায়। আমাদের সবার ঘরেই একটা বক্স থাকে না? যেটাতে প্রয়োজনীয় অপ্রয়োজনীয় সব কিছু আমরা ঢুকিয়ে রাখি, তেমন আরকি। যেমনঃ

box = [“My name is khan”, 3.1416, 911]

এই লিস্টে এক এক আইটেম এক এক টাইপের। আমরা ইচ্ছে করলে কোন আইটেম কোন টাইপের, তাও বের করে পারি।

print(type (box[0]))

লিখলে ইন্ডেক্স 0 এর আইটেম কোন টাইপের, তা প্রিন্ট করবে।

লিস্ট কনক্যাটিনেশনঃ

আমরা চাইলে একের অধিক লিস্ট এক সাথে জোড়া দিতে পারি। আবার রাখতে পারি নতুন আরেকটা লিস্টে। যেমন আমাদের দুইটা লিস্ট আছে, তা আমরা এক সাথে প্রিন্ট করতে চাই, তাহলে লিখব এভাবেঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
box = ["My name is khan", 3.1416, 999, "Jhon Doe"]
print(friends + box)

আবার চাইলে নতুন আরেকটা লিস্টেও রেখে দিতে পারি, যেন পরে যে কোন সময় ব্যবহার করা যায়ঃ

friends = ["Shubo", "Tuhin", "Tanvir", "Dipu", "Siyam"]
box = ["My name is khan", 3.1416, 999, "Jhon Doe"]
new_list = friends + box

লিস্ট নিয়ে এ অধ্যায় আমরা অনেক কিছু শিখেছি। এগুলো পরবর্তী অধ্যায়ে অন্যান্য বিষয় গুলো শিখতে কাজে লাগবে। তাই পরের অধ্যায় যাওয়ার আগে আপনি নিজে নিজে বিভিন্ন লিস্ট নিয়ে কাজ করতে পারেন। কিভাবে লিস্টের ভিবিন্ন অপারেশন করা যায়, তা ভালো করে শিখে নিতে প আরেন।

6 thoughts on “পাইথন – list

  1. আচ্ছা, .clear() ফাংশনটি কি Paython 3.x এর কি? আমার পিসিতে পাইথন ২.৭ ইনস্টল করা আছে, এইখানে এই কোড রান করালে বলছে, AttributeError: ‘list’ object has no attribute ‘clear’ কিন্তু সেইম কোড যখন অনলাইনে কোন পাইথন থ্রি আইডিতে রান করছি তখন ঠিকমত আউটপুট পাচ্ছে।

    1. জ্বি, পাইথন 3.x এর জন্য। এখানের সব গুলো লেখাই 3.x এর জন্য।

  2. এতকিছু এত সুন্দরভাবে কেউ কখনও বুঝাতে পারে বলে জানা ছিল না। উধাহরন গুলা খুব সুন্দর হয়েছে। এন্ড লিখার সিস্টেম টাও খুব গুছানো। অনেক মজায় শিখেছি এই টিউটোরিয়াল টা। many many thnx “JAKIR” vayya
    btw
    clear Attribute amar compiler e support korse na,
    ami hukus pakus er compiler use kori
    http://hukush-pakush.com/compiler.html
    code likhle erokom dekhasse
    AttributeError: ‘list’ object has no attribute ‘clear’

  3. আর একটা ব্যাপার,print এ কখনো round bracket ব্যবহার করেছেন।আবার কখনো করেননি। তো কখন করবো বা করা উচিত?? এবং করলে লাভ কি আর না করলে ক্ষতি কি?? প্লিজ একটু জানাবেন।

    1. sublime text e shobshomoy () bebohar korte hoi print option er pore. Nahole print option amader kono output dibena. Ami sublime text er () chara print use koresi kintu kono utput paine.

Leave a Reply