Кортежи - неизменяемые списки в Python
Я уже рассказывал Вам об одном из типов даных в Python - о списках, которые аналогичны по функционалу таковым в PHP, так как представляют коллекцию некоторых значений.
Сегодня я хочу рассказать Вам о другом типе данных в Python - о кортежах. Кортежи - это те же списки, которые однако нельзя изменить. Также кортежи создаются с помощью круглых кавычек, в отличие от квадратных у обычных списков, при этом учтите, что одно значение в кавычках это не кортеж, чтобы одно значение в кавычках стало кортежем, после него надо обязательно поставить запятую:
nums = (1) # просто число
nums = (1,) # уже не число, а неизменяяемый список - кортеж
К кортежам применимы теже операции конкатенации, среза и т.д., что и для обычных списков.
Доступ к значению кортежа осуществляется с помощью оператора tuple[index], при этом индекс начинается с нуля. Срез кортежа можно получить с помощью следующей конструкции tuple[first:last].
Изменение значений в кортеже запрещено, т.е. при выполнении следующей операции вы получите ошибку.
nums[0] = 2 # TypeError: 'tuple' object does not support item assignment
На кортежами можно выполнить следующие базовые операции:
>>> len(nums) -> 1 # возвращает длину
>>> nums nums -> (1,1) # кортеж из двух значений
>>> nums * 4 -> (12,12,12,12) # повторение 4 раза
>>> 3 in nums -> False # поиск элемента в кортеже
Таким образом, кортежи - это неизменяемые списки. Причины необходимости их наличия заключается в следеющем:
- эффективность копирования: вместо копирования неизменяемого объекта вы можете использовать его псевдоним (связать переменную со ссылкой)
- эффективность сравнения: когда вы используете копирование по ссылке, вы можете сравнивать две переменные, сравнивая местоположение, а не содержимое
- вам нужно хранить не более одной копии любого неизменного значения
- нет необходимости синхронизировать доступ к неизменным объектам в параллельном коде
- const правильность: некоторые значения не должны быть изменены.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.