🐍 کتابخانه مرجع پایتون

📋 لیست‌ها (Lists) در پایتون

لیست‌ها یکی از پرکاربردترین ساختارهای داده در پایتون هستند. یک لیست، مجموعه‌ای مرتب و قابل تغییر از عناصر است که می‌تواند انواع داده‌های مختلف را در خود جای دهد.

🔹 تعریف لیست

# لیست خالی
empty = []

# لیست از اعداد
numbers = [1, 2, 3, 4, 5]

# لیست از رشته‌ها
fruits = ["apple", "banana", "cherry"]

# لیست از انواع مختلف داده
mixed = [1, "hello", 3.14, True]

print(numbers)
print(fruits)
print(mixed)
⏳ برای اجرا دکمه را بزنید...

🔹 دسترسی به عناصر با اندیس (Indexing)

اندیس‌ها از صفر شروع می‌شوند. اندیس منفی از انتهای لیست شروع می‌شود.

fruits = ["apple", "banana", "cherry", "date", "elderberry"]

# دسترسی با اندیس مثبت
print(fruits[0])  # apple
print(fruits[2])  # cherry

# دسترسی با اندیس منفی
print(fruits[-1])  # elderberry
print(fruits[-3])  # cherry
⏳ برای اجرا دکمه را بزنید...

🔹 برش (Slicing)

با استفاده از : می‌توانید بخشی از لیست را استخراج کنید.

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(numbers[2:6])   # [2, 3, 4, 5]
print(numbers[:4])    # [0, 1, 2, 3]
print(numbers[6:])    # [6, 7, 8, 9]
print(numbers[::2])   # [0, 2, 4, 6, 8] (گام ۲)
print(numbers[::-1])  # معکوس کردن لیست
⏳ برای اجرا دکمه را بزنید...

🔹 تغییر عناصر لیست

fruits = ["apple", "banana", "cherry"]
print(fruits)

# تغییر یک عنصر
fruits[1] = "blueberry"
print(fruits)

# تغییر بازه‌ای از عناصر
fruits[1:3] = ["blackberry", "cranberry"]
print(fruits)
⏳ برای اجرا دکمه را بزنید...

🔹 اضافه کردن عناصر

fruits = ["apple", "banana"]

# append: اضافه کردن به انتهای لیست
fruits.append("cherry")
print(fruits)

# insert: اضافه کردن در اندیس مشخص
fruits.insert(1, "blueberry")
print(fruits)

# extend: اضافه کردن یک لیست دیگر
fruits.extend(["date", "elderberry"])
print(fruits)
⏳ برای اجرا دکمه را بزنید...

🔹 حذف عناصر

fruits = ["apple", "banana", "cherry", "date", "elderberry"]

# remove: حذف با مقدار
fruits.remove("banana")
print(fruits)

# pop: حذف با اندیس (اگر اندیس ندهیم، آخرین عنصر)
fruits.pop(1)  # حذف عنصر با اندیس ۱
print(fruits)
fruits.pop()   # حذف آخرین عنصر
print(fruits)

# del: حذف با اندیس یا برش
del fruits[0]  # حذف اولین عنصر
print(fruits)
del fruits[0:2]  # حذف بازه
⏳ برای اجرا دکمه را بزنید...

🔹 متدهای مفید لیست

numbers = [3, 1, 4, 1, 5, 9, 2]

# len: طول لیست
print(f"Length: {len(numbers)}")

# count: تعداد تکرار یک مقدار
print(f"Count of 1: {numbers.count(1)}")

# index: اندیس اولین occurrence
print(f"Index of 5: {numbers.index(5)}")

# sort: مرتب‌سازی (تغییر در جای خود)
numbers.sort()
print(f"Sorted: {numbers}")

# reverse: معکوس کردن
numbers.reverse()
print(f"Reversed: {numbers}")

# max, min, sum (برای اعداد)
print(f"Max: {max(numbers)}")
print(f"Min: {min(numbers)}")
print(f"Sum: {sum(numbers)}")
⏳ برای اجرا دکمه را بزنید...

🔹 تکرار روی لیست

fruits = ["apple", "banana", "cherry"]

# حلقه for ساده
for fruit in fruits:
    print(fruit)

# با enumerate (دسترسی به اندیس)
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")
⏳ برای اجرا دکمه را بزنید...

🔹 عملگرها و توابع روی لیست

list1 = [1, 2, 3]
list2 = [4, 5, 6]

# + : ترکیب دو لیست
combined = list1 + list2
print(combined)

# * : تکرار لیست
repeated = list1 * 3
print(repeated)

# in : بررسی عضویت
print(2 in list1)   # True
print(10 in list1)  # False

# not in
print(10 not in list1)  # True
⏳ برای اجرا دکمه را بزنید...

🔹 کپی کردن لیست

توجه: list2 = list1 کپی نمی‌کند، بلکه یک ارجاع جدید است.

original = [1, 2, 3]

# روش‌های درست کپی
copy1 = original.copy()
copy2 = list(original)
copy3 = original[:]

print(original)
print(copy1)
print(copy2)
print(copy3)

# تغییر کپی روی اصل تأثیر نمی‌گذارد
copy1[0] = 100
print(original)  # تغییری نکرده است
⏳ برای اجرا دکمه را بزنید...

🔹 لیست‌های تو در تو (Nested Lists)

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# دسترسی به عناصر
print(matrix[0][1])  # 2
print(matrix[2][0])  # 7

# تکرار روی سطرها
for row in matrix:
    for element in row:
        print(element, end=" ")
    print()
⏳ برای اجرا دکمه را بزنید...

🔹 تولید لیست با Comprehension

# مربع اعداد ۰ تا ۹
squares = [i**2 for i in range(10)]
print(squares)

# اعداد زوج ۰ تا ۲۰
evens = [i for i in range(21) if i % 2 == 0]
print(evens)

# ترکیب دو حلقه
pairs = [(x, y) for x in [1, 2, 3] for y in ['a', 'b']]
print(pairs)
⏳ برای اجرا دکمه را بزنید...

🔹 مثال جامع: مدیریت لیست دانشجویان

students = ["Ali", "Saba", "Reza", "Mina"]

# اضافه کردن دانشجو
students.append("Hossein")
print("After append:", students)

# پیدا کردن یک دانشجو
if "Saba" in students:
    print("Saba is in the list")

# مرتب‌سازی
students.sort()
print("Sorted:", students)

# حذف یک دانشجو
students.remove("Reza")
print("After remove:", students)

# تعداد دانشجویان
print(f"Total students: {len(students)}")
⏳ برای اجرا دکمه را بزنید...

📌 نکات کلیدی

← قبلی: حلقه while → بعدی: تاپل‌ها ↑ بازگشت به فهرست مقدماتی