تاپل‌ها در پایتون

تعریف تاپل، ویژگی‌ها، متدها و تفاوت با لیست — ساختار داده تغییرناپذیر

تاپل چیست؟

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

تعریف تاپل

تاپل با پرانتز ( ) تعریف می‌شود:

# تاپل
point = (10, 20)
colors = ("قرمز", "سبز", "آبی")

# تاپل تک‌عنصری (کاما الزامی است!)
single = (42,)

# بدون پرانتز هم می‌شود
t = 1, 2, 3

# تاپل خالی
empty = ()
تاپل تک‌عنصری باید کاما داشته باشد: (42,) نه (42). (42) فقط عدد ۴۲ است، نه تاپل!

دسترسی به عناصر

مثل لیست، ایندکس از صفر شروع می‌شود:

point = (10, 20, 30)
print(point[0])   # 10
print(point[-1])  # 30

# برش
t = (1, 2, 3, 4, 5)
print(t[1:4])  # (2, 3, 4)

تاپل تغییرناپذیر است!

t = (1, 2, 3)
# t[0] = 10  # ❌ خطا! تاپل تغییرناپذیر است
# t.append(4)  # ❌ خطا!

پیمایش تاپل

colors = ("قرمز", "سبز", "آبی")
for color in colors:
    print(color)

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

یکی از ویژگی‌های جذاب تاپل، امکان «باز کردن» آن در متغیرهای جداگانه است:

point = (10, 20, 30)
x, y, z = point
print(x)  # 10
print(y)  # 20
print(z)  # 30

# با ستاره (بقیه)
first, *rest = (1, 2, 3, 4, 5)
print(first)  # 1
print(rest)   # [2, 3, 4, 5]

متدهای تاپل

تاپل فقط دو متد دارد (چون تغییرناپذیر است):

متدتوضیحمثال
count(x)تعداد تکرار(1,2,2).count(2) → 2
index(x)ایندکس x(1,2,3).index(2) → 1

توابع مفید

t = (5, 2, 8, 1, 9)
print(len(t))   # 5
print(max(t))   # 9
print(min(t))   # 1
print(sum(t))   # 25
print(sorted(t))  # [1, 2, 5, 8, 9] (لیست برمی‌گرداند)

تاپل تو در تو

students = (
    ("علی", 25),
    ("مریم", 30),
    ("حسن", 22)
)

for name, age in students:
    print(f"{name}: {age} سال")

تبدیل بین لیست و تاپل

# لیست به تاپل
my_list = [1, 2, 3]
my_tuple = tuple(my_list)

# تاپل به لیست
t = (1, 2, 3)
l = list(t)
l.append(4)  # حالا می‌توان تغییر داد

چرا از تاپل استفاده کنیم؟

ویژگیلیستتاپل
تغییرپذیری✅ بله❌ خیر
سرعتکم‌تربیشتر
حافظهبیشترکمتر
کلید دیکشنری❌ خیر✅ بله
کاربردداده متغیرداده ثابت
از تاپل برای داده‌هایی استفاده کنید که نباید تغییر کنند — مثل مختصات، تاریخ، تنظیمات ثابت.

تاپل به‌عنوان کلید دیکشنری

# تاپل می‌تواند کلید دیکشنری باشد (لیست نمی‌تواند!)
locations = {
    (35.6, 51.4): "تهران",
    (29.6, 52.5): "شیراز",
    (38.0, 46.3): "تبریز"
}
print(locations[(35.6, 51.4)])  # تهران

خلاصه

این مبحث بخشی از دوره آموزش کامل پایتون است.

ابزارهای مرتبط