Кортежи
Кортеж создаётся круглыми скобками и запятыми. Для одного элемента запятая обязательна: (5,). После создания кортеж нельзя изменить: нельзя заменить элемент, добавить новый или удалить существующий.
my_tuple = (1, 2, 3, "apple", True)
single_element_tuple = (5,)
print(my_tuple[0])
print(single_element_tuple)
Кортежи поддерживают операции, похожие на списки: сложение, повторение, проверку in, длину и поэлементное сравнение.
Упаковка и распаковка
Упаковка собирает несколько значений в коллекцию. Распаковка раскладывает коллекцию по переменным. Количество переменных должно совпадать с количеством элементов, если не используется *.
packed_tuple = 1, 2, 3
a, b, c = packed_tuple
print(a, b, c)
numbers = [1, 2, 3, 4, 5]
first, *middle, last = numbers
print(first, middle, last)
enumerate()
enumerate(iterable, start=0) возвращает пары «индекс, значение». Это удобно, когда нужно менять список по индексу или печатать нумерованный список.
languages = ("Python", "Java", "C++")
for index, language in enumerate(languages, start=1):
print(f"{index}: {language}")
Методы кортежей
У кортежей мало методов, потому что они неизменяемые: count(value) считает вхождения, а index(value) возвращает индекс первого совпадения или вызывает ValueError.
Методы списков
Списки изменяемые, поэтому их методы умеют добавлять, удалять, сортировать и разворачивать элементы. Большинство таких методов меняет исходный список и возвращает None.
sorted() и reversed() отличаются от sort() и reverse(): они не меняют исходную коллекцию. reversed() возвращает итератор, который обычно преобразуют в list, tuple или строку.
Агрегаты
min(), max() и sum() помогают быстро получить минимальное, максимальное и суммарное значение. min() и max() могут принимать key, как сортировка.