Lesson ৭ মিনিট পড়া

লিস্ট এবং ট্যুপল (Lists & Tuples)

জিনিসপত্রের কালেকশন জমা রাখার জন্য আপনার বিশ্বস্ত পাত্র

লিস্ট — সাজানো এবং পরিবর্তনযোগ্য কালেকশন (Lists — Ordered, Mutable Collections)

লিস্ট হলো একটি নম্বরযুক্ত বগির ট্রেনের মতো। প্রতিটি বগিতে একটি করে জিনিস থাকে, আপনি চাইলে নতুন বগি যোগ করতে পারেন, বগি সরিয়ে ফেলতে পারেন, অথবা যেকোনো বগির ভেতরের জিনিসটি পাল্টে ফেলতে পারেন। এগুলো একটি নির্দিষ্ট ক্রমে সাজানো থাকে (০ নম্বর বগিটি সবসময় প্রথম), এবং আপনি এর ভেতরে শব্দ, সংখ্যা বা এমনকি অন্য লিস্টসহ যেকোনো কিছুই রাখতে পারেন।

লিস্ট তৈরি করতে স্কোয়ার ব্র্যাকেট বা তৃতীয় বন্ধনী [] ব্যবহার করা হয় এবং এর ভেতরের আইটেমগুলোকে কমা দিয়ে আলাদা করা হয়।

লিস্ট তৈরি এবং অ্যাক্সেস করা (Creating & Accessing Lists)

# Creating lists
colors = ["red", "blue", "green", "yellow"]
numbers = [10, 20, 30, 40, 50]
mixed = ["hello", 42, True, 3.14, None]
empty = []
# Indexing (same rules as strings!)
print(colors[0]) # First item
print(colors[-1]) # Last item
print(colors[1:3]) # Slice: items 1 and 2
# Length
print(len(colors))
# Check membership
print("blue" in colors)
print("purple" in colors)
Output
red
yellow
['blue', 'green']
4
True
False

লিস্ট মডিফাই বা পরিবর্তন করা (Modifying Lists)

স্ট্রিংয়ের মতো নয়, লিস্টগুলো মিউটেবল (Mutable) বা পরিবর্তনযোগ্য — অর্থাৎ তৈরি করার পরও আপনি এগুলোতে পরিবর্তন আনতে পারবেন। আপনি আইটেম যোগ করতে, মুছে ফেলতে, সাজাতে (sort) এবং আরও অনেক কিছু করতে পারেন। নিচে কিছু প্রয়োজনীয় লিস্ট মেথড দেওয়া হলো, যেগুলো আপনাকে প্রায় প্রতিদিনই ব্যবহার করতে হবে:

  • .append(x) — শেষে একটি আইটেম যোগ করা
  • .insert(i, x)i ইনডেক্সে বা পজিশনে একটি আইটেম যোগ করা
  • .pop(i)i ইনডেক্স থেকে আইটেমটি সরিয়ে ফেলা এবং রিটার্ন করা (ডিফল্টভাবে শেষেরটি)
  • .remove(x)x ভ্যালুটির প্রথম উপস্থিতিটি বা অকারেন্সটি সরিয়ে ফেলা
  • .sort() — ছোট থেকে বড় বা বড় থেকে ছোট ক্রমে সাজানো
  • .reverse() — উল্টো দিক থেকে সাজানো
  • .extend(list) — অন্য লিস্টের সব আইটেম যোগ করা

লিস্ট মেথডগুলোর ব্যবহার (List Methods in Action)

# Building a shopping list
cart = ["milk", "bread"]
cart.append("eggs") # Add to end
cart.insert(0, "butter") # Add at beginning
print("After adding:", cart)
cart.remove("bread") # Remove by value
last = cart.pop() # Remove & return last item
print(f"Removed: {last}")
print("After removing:", cart)
# Sorting
scores = [85, 42, 99, 71, 63]
scores.sort() # Sort ascending (in place)
print("Sorted:", scores)
scores.sort(reverse=True) # Sort descending
print("Top scores:", scores)
# Combine lists
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b) # Modifies a in place
print(a)
print([1, 2] + [3, 4]) # Creates new list with +
Output
After adding: ['butter', 'milk', 'bread', 'eggs']
Removed: eggs
After removing: ['butter', 'milk']
Sorted: [42, 63, 71, 85, 99]
Top scores: [99, 85, 71, 63, 42]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4]

ট্যুপল — অপরিবর্তনযোগ্য আত্মীয় (Tuples — The Immutable Cousin)

ট্যুপল হলো এমন একটি লিস্ট যাকে প্লাস্টিক র‍্যাপে সিল করে রাখা হয়েছে। একবার তৈরি করার পর, আপনি এতে কোনো আইটেম যোগ করতে, মুছতে বা পরিবর্তন করতে পারবেন না। কিন্তু কেন আপনার এমন কিছুর প্রয়োজন হতে পারে? কারণ এটি একটি প্রতিশ্রুতি দেয়: "এই ডেটা পরিবর্তন হবে না।"

ট্যুপলগুলো সাধারণ ব্র্যাকেট বা প্রথম বন্ধনী () ব্যবহার করে তৈরি করা হয় — বা এগুলো ছাড়াও শুধুমাত্র কমা ব্যবহার করে তৈরি করা যায়। এগুলো কোঅর্ডিনেটস বা স্থানাঙ্ক (x, y), RGB কালার (255, 0, 128) সংরক্ষণ করতে বা যেকোনো ফাংশন থেকে একাধিক ভ্যালু রিটার্ন করার জন্য উপযুক্ত।

ট্যুপল এবং আনপ্যাকিং (Tuples & Unpacking)

# Creating tuples
point = (3, 7)
rgb = (255, 128, 0)
singleton = (42,) # Need a trailing comma for 1 item!
print(point[0]) # Indexing works
print(len(rgb)) # Length works
# Unpacking — assign each element to a variable
x, y = point
print(f"x={x}, y={y}")
# Unpacking with * (star) to grab extras
first, *rest = [10, 20, 30, 40, 50]
print(f"First: {first}")
print(f"Rest: {rest}")
# Swapping is actually tuple unpacking!
a, b = 1, 2
a, b = b, a
print(f"a={a}, b={b}")
# Tuples as dictionary keys (lists can't do this!)
locations = {}
locations[(0, 0)] = "origin"
locations[(3, 4)] = "treasure"
print(locations)
Output
3
3
x=3, y=7
First: 10
Rest: [20, 30, 40, 50]
a=2, b=1
{(0, 0): 'origin', (3, 4): 'treasure'}
Note: যখন আপনার এমন কোনো কালেকশন বা ডেটার প্রয়োজন হবে যা পরবর্তীতে পরিবর্তিত হতে পারে (যেমন শপিং কার্ট বা টু-ডু লিস্ট), তখন একটি লিস্ট (list) ব্যবহার করুন। আর যখন ডেটা স্থির বা ফিক্সড রাখা উচিত (যেমন জিপিএস স্থানাঙ্ক, ডাটাবেস রেকর্ডস), তখন ট্যুপল (tuple) ব্যবহার করুন। ট্যুপলগুলো কিছুটা দ্রুত কাজ করে এবং কম মেমরি ব্যবহার করে।
চ্যালেঞ্জ

ছোট কুইজ

[1, 2, 3].pop(0) কী রিটার্ন করে?

পড়া চালিয়ে যান

LoopsDictionaries & Sets