10.1 Кортеж и его свойства
Кортежи относятся к четырем встроенным типам коллекций в Python.
Как вы уже знаете, в Python есть несколько встроенных типов данных, которые позволяют хранить группы объектов. Это list — список, tuple — кортеж, set — множество, dictionary — словарь. Сегодня мы рассмотрим второй и один из самых простых из них — кортеж.
Кортеж (tuple) позволяет хранить несколько элементов. У каждого элемента есть свой порядковый номер, что делает кортеж упорядоченным — ordered. В этом он похож на список.
Менять кортеж нельзя — однажды созданный, он остается неизменным, что делает его идеальным для хранения данных, которые не должны изменяться в программе. Поэтому его вторая характеристика — неизменяемость (immutable).
Что касается дубликатов — в кортеже можно хранить одинаковые элементы несколько раз — allow duplicates. Опять-таки, очень похоже на список.
Полезно. Можно думать о кортеже как о неизменяемом списке, который вместо квадратных скобок [] использует круглые ().
10.2 Создание кортежа
Кортежи — это неизменяемые последовательности элементов, которые можно создавать разными способами. Вот самые распространенные из них:
Прямое объявление:
Кортежи можно создать напрямую с помощью круглых скобок () и запятых для разделения элементов.
tuple1 = (1, 2, 3)
tuple2 = ("apple", "banana", "cherry", "apple", "cherry")
tuple3 = (1, "apple", True)
Без скобок:
Python позволяет создавать кортежи без использования скобок, просто разделяя элементы запятыми.
tuple1 = 1, 2, 3
tuple2 = "apple", "banana", "cherry", "apple", "cherry"
tuple3 = 1, "apple", True
Кортеж из одного элемента:
Для создания кортежа с одним элементом необходимо поставить запятую после этого элемента.
tuple1 = (1,)
tuple2 = ("apple",)
tuple3 = (True,)
Использование tuple():
Функция tuple() преобразует итерируемый объект в кортеж. Это может быть список, строка или любой другой итерируемый объект.
list_to_tuple = tuple([1, 2, 3])
10.3 Распаковка элементов кортежа
При работе с кортежами можно упаковать несколько элементов в один кортеж или распаковать кортеж в несколько переменных, что упрощает код:
Базовая распаковка
Пример распаковки кортежа в переменные:
my_tuple = (1, 2, 3)
x, y, z = my_tuple
Здесь переменные x, y и z получают значения 1, 2 и 3 соответственно.
Расширенная распаковка
Python также поддерживает расширенную распаковку, которая позволяет извлекать части кортежа в список, используя символ *:
a, *b, c = (1, 2, 3, 4, 5) # a = 1, b = [2, 3, 4], c = 5
В этом примере a и c получают первое и последнее значения, а b становится списком со всеми остальными значениями.
Применение в функциях
Распаковка кортежей часто используется при передаче параметров в функции. Это особенно удобно, когда функция принимает переменное количество аргументов или когда аргументы предварительно упакованы в кортежи или списки:
def func(a, b, c):
print(a, b, c)
values = (1, 2, 3)
func(*values)
Особенности использования
Распаковка кортежей требует точного соответствия количества элементов кортежа количеству переменных, которым они присваиваются, иначе будет сгенерирована ошибка. Однако использование * для сбора лишних элементов позволяет избежать этой ошибки, делая код более гибким к изменениям в данных.
10.4 Список методов
Кортежи — это неизменяемые объекты, поэтому у них почти нет своих методов. Всего два 😊
Функция count(x):
Возвращает количество раз, которое x встречается в кортеже. Это полезно для подсчёта количества определённых элементов.
t = (1, 2, 3, 2, 4, 2)
print(t.count(2)) # Выведет 3
Функция index(x):
Возвращает индекс первого вхождения элемента x в кортеже. Если элемент не найден, возникает исключение ValueError.
t = (1, 2, 3, 2, 4, 2)
print(t.index(3)) # Выведет 2
Хотя это и все методы класса tuple, это не означает, что с ним нельзя ничего делать. Можно, только это будет немного сложнее.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ