Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 4706 / 503 | Длительность: 21:48:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 10:

Кортежи (tuples)

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

Смотреть лекцию на: ИНТУИТ | youtube.com

Если проблемы с видео, нажмите выше ссылку youtube

Get Adobe Flash Player

По ссылке 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
Ксения Шошина
Ксения Шошина

курс Программирование на Python

Илья Кизилов
Илья Кизилов

В лекции приводится программа для сортировки слов по их длинне. В коде ошибка. Я исправил так:

def sort_by_length(words):

words = words.split()

t = []

for word in words:

t.append((len(word), word))

t.sort(reverse=True)

res = []

for length, word in t:

res.append(word)

return res

print(sort_by_length(words))

 

Кто ещё как сделал?

 

Артём Коптелов
Артём Коптелов
Россия, Vjcrdf
Алексей Дорожкин
Алексей Дорожкин
Россия, г. Подольск