Опубликован: 14.06.2015 | Уровень: для всех | Доступ: платный
Самостоятельная работа 10:

Кортежи (tuples)

< Самостоятельная работа 1 || Самостоятельная работа 10: 123456

По ссылке 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')
  
< Самостоятельная работа 1 || Самостоятельная работа 10: 123456
Алексей Виноградов
Алексей Виноградов

Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе.

Петр Олейников
Петр Олейников

Данные файлы неоходимы не только для самостоятельных работ, но и для тестов. А по ссылкам в лекциях они не доступны, выдает ошибку 404.

Александр Душечкин
Александр Душечкин
Россия, Ижевск, ИжГТУ, 2002
Дмитрий Голиков
Дмитрий Голиков
Россия