পাইথন প্রজেক্টস ও লাইব্রেরি

৬. ডাটা স্ট্রাকচার (Data Structures)

পাইথনে প্রধান ৪টি বিল্ট-ইন ডাটা স্ট্রাকচার আছে।

১. List (লিস্ট):

লিস্ট হলো একাধিক আইটেমের কালেকশন। এটি পরিবর্তনযোগ্য (Mutable), অর্ডার মেইনটেইন করে এবং ডুপ্লিকেট ভ্যালু রাখতে পারে।

colors = ["red", "green", "blue"]

# ইনডেক্সিং (জিরো-বেসড)
print(colors[0])      # red
print(colors[-1])     # blue (শেষের আইটেম)

# লিস্ট মেথড
colors.append("yellow")     # শেষে যুক্ত করে
colors.insert(1, "black")   # নির্দিষ্ট ইনডেক্সে যুক্ত করে
colors.remove("green")      # নির্দিষ্ট আইটেম মুছে ফেলে
last_item = colors.pop()    # শেষের আইটেম রিমুভ করে রিটার্ন করে

# List Comprehension (লিস্ট তৈরির শর্টকাট)
squares = [x**2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]

২. Tuple (টাপল):

এটি লিস্টের মতোই, তবে একবার তৈরি করলে আর পরিবর্তন করা যায় না (Immutable)।

coordinates = (10.0, 20.0, 30.0)
print(coordinates[1]) # 20.0
# coordinates[0] = 15.0 # এটি Error দিবে!

৩. Dictionary (ডিকশনারি):

এটি কী-ভ্যালু (Key-Value) পেয়ার হিসেবে ডাটা রাখে।

student = {
    "name": "Rahim",
    "age": 20,
    "major": "CSE"
}

print(student["name"])     # Rahim
student["cgpa"] = 3.8      # নতুন কী-ভ্যালু যুক্ত করা
student["age"] = 21        # ভ্যালু আপডেট করা

# লুপ চালানো
for key, value in student.items():
    print(f"{key}: {value}")

৪. Set (সেট):

সেট হলো ডুপ্লিকেট-বিহীন, আন-অর্ডারড ডাটা কালেকশন। গণিতের সেটের মতো কাজ করে।

set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}

print(set_a.union(set_b))        # {1, 2, 3, 4, 5, 6}
print(set_a.intersection(set_b)) # {3, 4}