Кортежі
Кортеж — немутабельна впорядкована послідовність
Зазвичай кортежі використовуються для зберігання різнотипних даних (або однотипних, але які логічно представляють різні сутності).
Кортежі представлені класом tuple
.
Кортежі підтримуєть усі загальні для усіх послідовностей операції.
Створення кортежів:
спосіб | приклад |
---|---|
перераховування елементів в круглих дужках, якщо елемент один, після нього ставиться кома | (1,) |
перераховування елементів через кому | 1, 2, 'some string' |
порожній кортеж | () |
використання конструктора класа | tuple(range(8)) |
Розпаковування кортежів
Змінні, які об'єднано в кортеж, можуть стояти ліворуч операції присвоєння. Тоді їм присвоюються відповідні значення ітерабельного об'єкта.
>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
>>>
Поміняти місцями значення двох змінних:
>>> a, b = 7, 15
>>> a, b = b, a
>>> a
15
>>> b
7
>>>
Використовуючи спеціальний синтаксис — змінна, перед якою стоїть зірочка, — можна в цю змінну "запакувати" у вигляді списка "зайві" значення:
>>> a, b, *rest = range(10)
>>> a
0
>>> b
1
>>> rest
[2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> first, *middle, last = range(10)
>>> first
0
>>> last
9
>>> middle
[1, 2, 3, 4, 5, 6, 7, 8]
>>>
Змінні, які об'єднано в кортеж, також можуть стояти в заголовку цикла for
.
Створимо список кортежів кожен з двох елементів:
>>> tuples = [(x, y) for x in range(3) for y in range(3)]
>>> tuples
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
>>> for x, y in tuples:
... print(x, y)
...
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
>>>