تاپلها در پایتون
تعریف تاپل، ویژگیها، متدها و تفاوت با لیست — ساختار داده تغییرناپذیر
تاپل چیست؟
تاپل (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)]) # تهران
خلاصه
- تاپل مثل لیست اما تغییرناپذیر
- با پرانتز
( )تعریف میشود - دو متد دارد:
countوindex - از Unpacking برای استخراج مقادیر استفاده میشود
- سریعتر و سبکتر از لیست
این مبحث بخشی از دوره آموزش کامل پایتون است.