📋 لیستها (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)}")
⏳ برای اجرا دکمه را بزنید...
📌 نکات کلیدی
- ✅ لیستها با
[]تعریف میشوند. - ✅ اندیسها از صفر شروع میشوند.
- ✅ لیستها قابل تغییر (Mutable) هستند.
- ✅
append()،insert()،extend()برای افزودن عناصر. - ✅
remove()،pop()،delبرای حذف عناصر. - ✅
len()،sort()،reverse()،count()،index()از متدهای مفید. - ✅
inوnot inبرای بررسی عضویت. - ✅
list comprehensionروشی قدرتمند برای ایجاد لیستها.