Тип даних tuple
Ще одна структура даних в Python — кортеж.
Кортеж (англ. tuple) в Python— це послідовність елементів будь-яких типів.
Кортеж записується майже так само, як список, але замість квадратних дужок використовуються круглі.
>>> my_tuple = (1, 'two', 3, '4', 55555, True)
>>> my_tuple
(1, 'two', 3, '4', 55555, True)
>>>
Пустий кортеж:
>>> t=()
>>> type(t)
<class 'tuple'>
>>>
Кортеж з одним елементом:
>>> t = (1,)
>>> t
(1,)
>>>
Дужки можна опускати:
>>> t = 1, 2, 'three'
>>> t
(1, 2, 'three')
>>> type(t)
<class 'tuple'>
>>> t = 'element',
>>> t
('element',)
>>>
Елементи кортежу мають визначений порядок, так само, як і в списку. Так само індексація починається з нуля.
>>> (1, 2, 3)[1]
2
>>>
Від'ємні індекси діють так само, як у списків.
>>> (1, 2, 3, 'last')[-1]
'last'
Здається що кортежі — це ті ж списки, тільки чомусь записані трохи по-іншому. Для чого ж тоді два окремих типи даних?
Основна відмінність між списками та кортежами: кортежі не можна змінювати. Технічно — вони незмінні. Практично — вони не мають засобів,які б дозволили вам змінити їх.
>>> t = (1, 2, 3)
>>> t[0] = 7
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
Навіщо так зроблено? Деколи є необхідність об'єднати якісь дані в одну структуру, і треба щоб ця структура даних ніколи не могла би бути зміненою. Тоді дані об'єднують у кортеж. В інших випадках є необхідність при потребі змінити дані у структурі, і тоді використовують списки.
Якщо у одну структуру необхідно об'єднати елементи, кожен з яких можна визначити як окрему сутність, тоді швидше за все варто використовувати кортеж. Наприклад, об'єднаємо в одну структуру дані про людину: ім'я, призвіще і вік.
>>> person = ('Іван', 'Петренко', 23)
>>>
До кожного елемента створеної структури можна "дістатись" за допомогою індексації, і кожен елемент є окремою сутністю:
>>> first_name = person[0]
>>> first_name
'Іван'
>>> last_name = person[1]
>>> last_name + ' ' + first_name[0] + '.'
'Петренко І.'
>>>
Якщо ж необхідно об'єднати в одну структуру однаманітні дані, тоді, швидше за все, варто використовувати список. Наприклад список чисел, список книг, список адрес електроної пошти, список контактів.