دیدیم که لیستها و رشتهها ویژگیهای مشترک زیادی دارند، مانند اندیسگذاری و عملیات برش. آنها دو نمونه از انواع داده توالی هستند. از آنجا که پایتون یک زبان در حال تکامل است، انواع داده توالی دیگری ممکن است اضافه شوند. نوع داده توالی استاندارد دیگری نیز وجود دارد: تاپل (tuple).
یک تاپل از تعدادی مقدار جدا شده با کاما تشکیل شده است. به عنوان مثال:
>>> t = 12345, 54321, 'hello!' >>> t[0] 12345 >>> t (12345, 54321, 'hello!') >>> # تاپلها میتوانند تودرتو باشند: >>> u = t, (1, 2, 3, 4, 5) >>> u ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5)) >>> # تاپلها تغییرناپذیر هستند: >>> t[0] = 88888 Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment >>> # اما میتوانند حاوی اشیاء تغییرپذیر باشند: >>> v = ([1, 2, 3], [3, 2, 1]) >>> v ([1, 2, 3], [3, 2, 1])
همانطور که میبینید، در خروجی تاپلها همیشه در پرانتز محصور میشوند. نمیتوان به آیتمهای منفرد یک تاپل مقدار اختصاص داد، اما میتوان تاپلهایی ایجاد کرد که حاوی اشیاء تغییرپذیر مانند لیستها باشند.
اگرچه تاپلها ممکن است شبیه لیستها به نظر برسند، اما معمولاً در موقعیتها و اهداف مختلفی استفاده میشوند. تاپلها تغییرناپذیر هستند و معمولاً حاوی توالی ناهمگنی از عناصر هستند که از طریق بازپاکسازی یا اندیسگذاری بازیابی میشوند. لیستها تغییرپذیر هستند و عناصرشان معمولاً همگن هستند و با تکرار روی لیست بازیابی میشوند.
مشکل خاصی در ساخت تاپلهای حاوی ۰ یا ۱ آیتم وجود دارد: نحو دارای برخی عجایب اضافی برای تطبیق اینها است. تاپلهای خالی با یک جفت پرانتز خالی ساخته میشوند؛ تاپل با یک آیتم با قرار دادن کاما بعد از یک مقدار ساخته میشود (فقط محصور کردن یک مقدار در پرانتز کافی نیست). مثال:
>>> empty = ()
>>> singleton = 'hello', # <-- توجه به کامای انتهایی
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)
عبارت t = 12345, 54321, 'hello!' نمونهای از بستهبندی تاپل است: مقادیر 12345، 54321 و 'hello!' در یک تاپل بستهبندی میشوند. عمل معکوس نیز ممکن است:
>>> x, y, z = t
این بازپاکسازی توالی (sequence unpacking) نامیده میشود و برای هر توالی در سمت راست عمل میکند. بازپاکسازی توالی نیاز دارد که به همان تعداد متغیر در سمت چپ علامت مساوی وجود داشته باشد که عناصر در توالی وجود دارد.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://docs.python.org/3/tutorial