چندتایی چندتایی (Tuple) یک دادهساختار تغییرناپذیر است که شباهت زیادی به لیست دارد. چندتایی مانند لیست از دنبالهای از اشیا نه لزوما همجنس تشکیل شده. برای ساختن یک چندتایی میتوان از () و , استفاده کرد. برای مثال :
>>> t = ("ali", 123, 2.5)
>>> t
('ali', 123, 2.5)
>>> type(t)
<class 'tuple'>
چندتایی دارای اندیسدهی شبیه لیست و رشته است همچنین قابل پیمایش نیز هست. به مثال زیر توجه کنید :
>>> t = ("ali", 123, 2.5)
>>> t[0]
'ali'
>>> t[0:2]
('ali', 123)
>>> for it in t:
... print(it)
...
ali
123
2.5
بدون استفاده از () و فقط با , نیز میتوان چندتایی ساخت.
>>> t = "ali", 123, 2.5
>>> t
('ali', 123, 2.5)
>>> type(t)
<class 'tuple'>
وقتی از = برای تساوی دو چندتایی استفاده میکنیم مقدارهای هر عضو سمت راست به عضو متناظر سمت چپ انتقال داده میشود.
>>> a, b, c = 10, 20, 30
>>> a
10
>>> b
20
>>> c
30
>>> a, b = b, a
>>> a
20
>>> b
10
برای ساختن چندتایی خالی از یک () استفاده میکنیم و برای ساختن یک چندتایی یک عضوی از (a,) استفاده میکنیم.
>>> t = ()
>>> len(t)
0
>>> type(t)
<class 'tuple'>
>>> t = (1)
>>> type(t)
<class 'int'>
>>> t = 1,
>>> len(t)
1
>>> type(t)
<class 'tuple'>
یکی از کاربردهای چندتایی در برگرداندن چند مقدار در یک تابع است. برای اینکار از لیست هم میتوان استفاده کرد ولی چون لیست تغییرپذیر است بهتر است از چندتایی استفاده کنیم تا تغییر در مقدار برگردانده شده بر بقیه مقدارها تاثیر نگذارد. به مثال زیر دقت کنید :
>>> myList = [1, 2]
>>> def f():
... return myList
...
>>> a = f()
>>> a.append("12")
>>> myList
[1, 2, '12']
>>> a[0] = 10
>>> myList
[10, 2, '12']
مثالی برای اینکه از چندتایی برای مقادیر برگشتی استفاده شود:
>>> myTuple = 1, 2
>>> def f():
... return myTuple
...
>>> a = f()
>>> a
(1, 2)
>>> a[0] = 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> a = 3, 4
>>> myTuple
(1, 2)