Кортежи в Python
Кортежи в Python
| |
Тематические порталы
|
Списки хорошо работают для хранения наборов элементов, которые могут меняться во время использования программы. Возможность изменять списки особенно важно, когда работаете со данными пользователей на веб-сайте или списком персонажей в игре и т.д. Однако иногда необходимо создать список элементов, который не может быть изменен. Кортежи позволяют сделать это. Python ссылается на значения, которые нельзя изменить. Другими словами кортеж — это неизменяемый список.
Создание кортежа
Кортеж выглядит как список, за исключением того, что вы используете круглые скобки вместо квадратных. Определив кортеж, вы можете получить доступ к отдельным элементам, используя индекс каждого элемента, как и для списка.
Например, если у нас есть прямоугольник, который всегда должен быть определенного размера, мы можем гарантировать, что его размер не изменится, поместив размеры в кортеж:
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
Мы определяем кортеж, используя круглые скобки вместо квадратных. Далее выводим каждый элемент в кортеже индивидуально, используя тот же синтаксис, который мы использовали для доступа к элементам в списке, хотя можно точно также выводить и значения всего кортежа. В общем мы получаем следующий результат:
200 50
Давайте посмотрим, что произойдет, если мы попытаемся изменить один из элементов в измерениях кортежа:
dimensions = (200, 50)
dimensions[0] = 250
Код пытается изменить значение первого значения, однако Python возвращает ошибку. В основном, потому что мы пытаемся изменить кортеж. Python сообщает нам, что мы не можем присвоить новое значение элементу в кортеже:
Traceback (most recent call last): File "dimensions.py", line 3, in <module> dimensions[0] = 250 TypeError: 'tuple' object does not support item assignment
Примечание
Другими словами кортежи очень схожи со своими свойствами со списком и точно также можем выводить данные, однако никак невозможно изменить данные, сохранённые в нём. Если есть вопросы, то оставляйте их на странице обсуждения.