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

🔗 تاپل‌ها (Tuples) در پایتون

تاپل‌ها (Tuple) یکی از ساختارهای داده در پایتون هستند که مانند لیست‌ها، مجموعه‌ای از عناصر را نگهداری می‌کنند، اما غیرقابل تغییر (Immutable) هستند. یعنی پس از ایجاد، نمی‌توان عناصر آن را تغییر داد، حذف کرد یا اضافه کرد.

🔹 تعریف تاپل

# تاپل خالی
empty = ()

# تاپل با یک عنصر (به کاما توجه کنید)
single = (5,)

# تاپل از اعداد
numbers = (1, 2, 3, 4, 5)

# تاپل از انواع مختلف داده
mixed = (1, "hello", 3.14, True)

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

🔹 دسترسی به عناصر (مانند لیست‌ها)

دسترسی به عناصر تاپل دقیقاً مانند لیست‌ها با استفاده از اندیس‌ها انجام می‌شود.

fruits = ("apple", "banana", "cherry", "date", "elderberry")

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

# دسترسی با اندیس منفی
print(fruits[-1])  # elderberry
print(fruits[-3])  # cherry

# برش (Slicing)
print(fruits[1:4])   # ('banana', 'cherry', 'date')
print(fruits[::-1])  # معکوس کردن تاپل
⏳ برای اجرا دکمه را بزنید...

🔹 تفاوت تاپل و لیست

# لیست قابل تغییر است
my_list = [1, 2, 3]
my_list[1] = 100
print(my_list)  # [1, 100, 3]

# تاپل غیرقابل تغییر است
my_tuple = (1, 2, 3)
# my_tuple[1] = 100  # این خطا می‌دهد!
⏳ برای اجرا دکمه را بزنید...

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

تاپل‌ها متدهای کمی دارند، اما دو متد مهم count و index را پشتیبانی می‌کنند.

numbers = (1, 2, 3, 2, 4, 2, 5)

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

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

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

# 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}")
⏳ برای اجرا دکمه را بزنید...

🔹 عملگرها روی تاپل

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)

# + : ترکیب دو تاپل
combined = tuple1 + tuple2
print(combined)

# * : تکرار تاپل
repeated = tuple1 * 3
print(repeated)

# in : بررسی عضویت
print(2 in tuple1)   # True
print(10 in tuple1)  # False
⏳ برای اجرا دکمه را بزنید...

🔹 تاپل‌های تو در تو (Nested Tuples)

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()
⏳ برای اجرا دکمه را بزنید...

🔹 Unpacking (باز کردن تاپل)

# باز کردن تاپل به متغیرهای جداگانه
coordinates = (10, 20)
x, y = coordinates
print(f"x = {x}, y = {y}")

# باز کردن با ستاره (*) برای بقیه مقادیر
numbers = (1, 2, 3, 4, 5)
first, *rest = numbers
print(f"first: {first}, rest: {rest}")

# جایگزینی مقادیر با تاپل
a, b = 5, 10
a, b = b, a  # جابه‌جایی مقادیر
print(f"a = {a}, b = {b}")
⏳ برای اجرا دکمه را بزنید...

🔹 تبدیل لیست به تاپل و بالعکس

my_list = [1, 2, 3, 4, 5]

# تبدیل لیست به تاپل
my_tuple = tuple(my_list)
print(f"Tuple: {my_tuple}")

# تبدیل تاپل به لیست
new_list = list(my_tuple)
print(f"List: {new_list}")
⏳ برای اجرا دکمه را بزنید...

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

🔹 مثال جامع: مدیریت اطلاعات دانشجویان با تاپل

# هر دانشجو به صورت یک تاپل (نام، سن، شهر)
students = [
    ("Ali", 22, "Tehran"),
    ("Saba", 24, "Shiraz"),
    ("Reza", 20, "Isfahan"),
    ("Mina", 23, "Tehran")
]

# نمایش اطلاعات
for name, age, city in students:
    print(f"{name} is {age} years old and lives in {city}.")

# پیدا کردن دانشجویان تهران
tehran_students = [name for name, age, city in students if city == "Tehran"]
print(f"\nStudents from Tehran: {tehran_students}")

# محاسبه میانگین سن
average_age = sum(age for name, age, city in students) / len(students)
print(f"Average age: {average_age:.2f}")
⏳ برای اجرا دکمه را بزنید...

📌 نکات کلیدی

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