در پایتون، Tuple Unpacking به معنای باز کردن عناصر یک Tuple و اختصاص آنها به متغیرهای جداگانه است. این قابلیت باعث میشود کار با Tupleها سادهتر و خواناتر شود.
🔹 1️⃣ Unpacking ساده
point = (10, 20)
x, y = point
print(x) # 10
print(y) # 20
تعداد متغیرها باید دقیقاً با تعداد عناصر Tuple برابر باشد، در غیر این صورت خطا رخ میدهد.
🔹 2️⃣ Unpacking با rest*
میتوانید باقیمانده عناصر را در یک لیست جمع کنید:
numbers = (1, 2, 3, 4, 5)
first, second, *rest = numbers
print(first) # 1
print(second) # 2
print(rest) # [3, 4, 5]
-
میتوان
*
را در وسط یا انتها هم استفاده کرد:
first, *middle, last = numbers
print(middle) # [2, 3, 4]
🔹 3️⃣ Unpacking در حلقهها
برای دسترسی راحت به عناصر Tuple در لیست تو در تو یا دادههای پیچیده:
points = [(1, 2), (3, 4), (5, 6)]
for x, y in points:
print(f"x={x}, y={y}")
📌 خروجی:
x=1, y=2
x=3, y=4
x=5, y=6
🔹 4️⃣ Unpacking هنگام بازگشت از توابع
توابع میتوانند Tuple بازگردانند و با Unpacking مقادیر را مستقیماً دریافت کنید:
def get_coordinates():
return (100, 200)
x, y = get_coordinates()
print(x, y) # 100 200
🔹 5️⃣ استفاده در چندین سطح (Nested Tuple)
میتوانید Tupleهای تو در تو را هم Unpack کنید:
nested = ((1, 2), (3, 4))
(a, b), (c, d) = nested
print(a, b, c, d) # 1 2 3 4
✅ نکات مهم
-
تعداد متغیرها باید با تعداد عناصر Tuple مطابقت داشته باشد یا از
*
برای بقیه استفاده کنید. -
Unpacking در حلقهها، توابع و دادههای تو در تو بسیار مفید و خوانا است.
-
میتوانید ترکیبی از متغیرهای منفرد و
rest*
برای جمع کردن باقی عناصر داشته باشید.
💡 خلاصه:
-
x, y = tuple
→ Unpack ساده -
first, *rest = tuple
→ جمعبندی باقی عناصر -
for a, b in list_of_tuples:
→ Unpacking در حلقه -
(a, b), (c, d) = nested_tuple
→ Unpacking در Tuple تو در تو
این روشها تمام کاربردهای Tuple Unpacking در پایتون را پوشش میدهند.