Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе. |
Кортежи (tuples)
По ссылке youtube выложено видео с русскими титрами.
20.1. Кортежи неизменяемы
Кортеж 1Интересный факт: слово tuple — "кортеж" – произошло от названий последовательностей чисел различной длины: двухэлементных, трехэлементных, четырехэлементных, пяти-, шести- и т.д. (double, triple, quadruple, quituple, sextuple, …). – это последовательность значений, аналогичная списку. Значения, хранимые в кортеже, могут быть различных типов; они индексируются целыми числами. Важное отличие от списков – кортежи неизменяемы.
Также кортежи сравниваются и хешируются, что позволяет сортировать их списки и использовать кортежи в качестве ключевых значений в словарях Питона. Синтаксически, кортеж – это список значений, разделенных запятыми:
>>> t = 'a', 'b', 'c', 'd', 'e'
Кортежи обычно заключают в круглые скобки, хотя это и не обязательно. Скобки помогают опознать кортеж в исходном коде Питона:
>>> t = ('a', 'b', 'c', 'd', 'e')
При создании кортежа с одним элементом необходимо в конце поставить запятую:
>>> t1 = ('a',) >>> type(t1) <type 'tuple'>
Без запятой в конце Питон распознает ('a') как выражение в скобках, которое является строкой:
>>> t2 = ('a') >>> type(t2) <type 'str'>
Другой способ образования кортежа – с помощью встроенной функции tuple. При вызове без аргумента она создает пустой кортеж:
>>> t = tuple() >>> print t ()
Если аргумент является последовательностью (строкой, списком или кортежем), то результатом вызова функции tuple станет кортеж с последовательностью элементов:
>>> t = tuple('lupins') >>> print t ('l', 'u', 'p', 'i', 'n', 's')
Так как tuple является именем конструктора, следует избегать использования этого слова в качестве переменной.
Большинство операторов списка также работают и с кортежами.
Оператор квадратные скобки индексирует элемент:
>>> t = ('a', 'b', 'c', 'd', 'e') >>> print t[0] 'a'
Оператор двоеточие задает диапазон элементов:
>>> print t[1:3] ('b', 'c')
При попытке изменить один из элементов кортежа выдается сообщение об ошибке:
>>> t[0] = 'A'
TypeError: object doesn't support item assignment (Ошибка Типа: объект не допускает изменения его элементов)
Нельзя изменять элементы кортежа, можно лишь заменить один кортеж на другой:
>>> t = ('A',) + t[1:] >>> print t ('A', 'b', 'c', 'd', 'e')