tuple: Кортежи в Python
Введение | |
Кортеж из списка | |
Неизменяемость | |
sorted | |
Похожие статьи |
Введение
Кортеж в Python это:
- последовательность элементов, которые разделены между собой запятой и заключены в скобки
- неизменяемый упорядоченный тип данных
Грубо говоря, кортеж - это список, который нельзя изменить. То есть, в кортеже есть только права на чтение. Это может быть защитой от случайных изменений.
Создать пустой кортеж:
t = tuple() print(t)
()
Кортеж может состоять из одного элемента:
# Это строка s = ("b") print(type(s)) print(s) # Это кортеж t = ("b",) print(type(t)) print(t)
Обратите внимание на запятую
<class 'str'> b <class 'tuple'> ('b',)
Кортеж из списка:
list_cities = ["benalmadena", "cordoba", "fuengirola", "malaga", "torremolinos"] tuple_cities = tuple(list_cities) print(type(list_cities)) print(type(tuple_cities)) print(tuple_cities)
<class 'list'> <class 'tuple'> ('benalmadena', 'cordoba', 'fuengirola', 'malaga', 'torremolinos')
К объектам в кортеже можно обращаться, как и к объектам списка, по порядковому номеру:
# By index print(tuple_cities[0])
benalmadena
Неизменяемость
Так как кортеж неизменяем, присвоить новое значение нельзя:
tuple_cities[1] = "barcelona"
Traceback (most recent call last): File "tuple_ex.py", line 18, in <module> tuple_cities[1] = "barcelona" TypeError: 'tuple' object does not support item assignment
TypeError можно обработать с помощью except
try: tuple_cities[1] = "barcelona" except TypeError: print("Can't change tuple")
Can't change tuple
sorted()
Функция sorted сортирует элементы кортежа по возрастанию и возвращает новый список с отсортированными элементами:
tuple_cities = ("cordoba", "fuengirola", "malaga", "torremolinos", "benalmadena") sorted_list_cities = sorted(tuple_cities) print(type(sorted_list_cities)) print(sorted_list_cities)
<class 'list'> ['benalmadena', 'cordoba', 'fuengirola', 'malaga', 'torremolinos']