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

Кортежи (tuples)

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

20.7. Использование кортежей в качестве ключей в словарях

Кортежи, в отличие от списков, хешируемы, поэтому, если мы хотим создать составной ключ для использования в словаре, нужно использовать кортеж в качестве ключа.

Например, нам понадобится составной ключ, если мы захотим создать телефонный справочник, который отображает пары (фамилия, имя) на телефонные номера. Предположим, что переменные last (фамилия – last name), first (имя – first name) и number (номер) определены, тогда мы можем внести запись в справочник следующим образом:

directory[last,first] = number

Выражение в скобках является кортежем. Мы можем использовать присваивание кортежей в цикле for для печати содержимого справочника.

for last, first in directory:
print first, last, directory[last,first]
  

Цикл перебирает ключи справочника, которые являются кортежами. Происходит присваивание элементов каждого кортежа переменным last и first, затем выводится имя и соответствующий телефонный номер.

20.8. Последовательности: строки, списки, кортежи...

Мы уделяли внимание в основном спискам кортежей, но почти во всех примерах в этой главе используются и списки списков, кортежи кортежей, списки кортежей. Чтобы не перечислять все возможные комбинации, проще говорить о последовательностях последовательностей.

Во многих случаях различные виды последовательностей (строки, списки, кортежи) могут использоваться как взаимозаменяемые. Но как выбрать конкретный тип среди всех возможных? Начнем с очевидного: строки ограничены тем, что их элементами являются символы. К тому же строки неизменяемы. Если необходима возможность изменения символов в строке (а не просто создание новой строки), можно использовать вместо строк списки символов.

Списки более распространены, чем кортежи, в основном потому, что их можно изменять. Но ниже приведено несколько случаев, когда предпочтение отдается кортежам

  1. В некоторых случаях, например, в операторе return, синтаксически проще создать кортеж, чем список. В других случаях можно предпочесть список.
  2. Если мы хотим использовать последовательность как ключ в словаре, нам обязательно нужен неизменяемый тип, например, кортеж или строка.
  3. Если последовательность используется в качестве аргумента функции, применение кортежей уменьшает вероятность незапланированного поведения благодаря ссылкам.

Так как кортежи неизменяемы, они не позволяют применять такие методы, как sort и reverse, которые изменяют содержимое списка. Однако Питон предоставляет встроенные функции sorted и reversed (сортировка и обращение), которые принимают любую последовательность в качестве параметра и возвращают новый список с теми же элементами в другом порядке.

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

Я записалась на курсы, но я опасаюсь отправлять копию паспорта. Я не уверена, что она не попадёт в чужие руки. Скажите, пожалуйста, какая у Вас степень защиты документов?

Николай Анищенко
Николай Анищенко

Первая лекция, первая блок-схема, и нате вам. ЦПУ и оперативка объеденены в единый блок. Ну это ладно, то блок этот софтваре! С каких это пор, ЦПУ и оперативка стали софтом?

Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша
Андрей Микульский
Андрей Микульский
Молдова, Республика, Комрат, Комратский Государственный Университет