Кортежи
Кортеж — это неизменяемый список. С момента создания кортеж не может быть изменен никакими способами.
Пример 1.22. Определение кортежей
>>> t = ("a", "b", "mpilgrim", "z", "example")
>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t[0]
'a' >>> t[-1]
'example' >>> t[1:3]
('b', 'mpilgrim')
Кортеж определяется так же, как и список, но элементы перечисляются в круглых скобках вместо квадратных. | |
Как и в списках, элементы в кортежах имеют определенный порядок. Точно так же нумерация элементов начинается с нуля, то есть первым элементом непустого кортежа всегда является t[0]. | |
Как и для списков, отрицательные индексы позволяют вести отсчет элементов с конца кортежа. | |
К кортежам, как и к спискам можно применить операцию среза. Обратите внимание, что срез списка — новый список, а срез кортежа — новый кортеж. |
Пример 1.23. У кортежей нет методов
>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t.append("new")
Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'append' >>> t.remove("z")
Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'remove' >>> t.index("example")
Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'index' >>> "z" in t
1
Вы не можете добавлять элементы в кортеж. У кортежей нет методов append и extend. | |
Вы не можете удалять элементы из кортежа. У кортежей нет методов remove и pop. | |
Вы не можете искать элементы в кортеже с помощью метода index — у кортежей нет такого метода. | |
Однако, вы можете проверить наличие элемента в кортеже с помощью оператора in. |
Так для чего же нужны кортежи?
- Работа с кортежами быстрее, чем со списками. Если вы определяете постоянный набор значений, и все, что вы хотите с ним когда-либо делать, это перебирать его элементы, используйте кортеж вместо списка.
- Помните, я сказал, что в качестве могут выступать числа, строки и объекты “некоторых других типов”? Кортежи могут быть ключами словаря, а списки нет.[2]
- Как мы скоро увидим, кортежи используются для получения форматированного представления.
Кортеж может быть преобразован в список и наоборот. Встроенная функция tuple воспринимает список в качестве аргумента и возвращает кортеж с теми же самыми элементами, и функция list воспринимает кортеж в качестве аргумента и возвращает список. В результате tuple “замораживает” список, а list его “размораживает”. |
Дополнительная литература
- обучает работе с кортежами и показывает как .
- показывает как .
- объясняет как .
Footnotes
[2] На самом деле все несколько сложнее. Ключи словаря должны быть неизменяемыми. Кортежи сами по себе неизменяемы, но, если у вас имеется кортеж списков, то он считается изменяемым и не может быть использован в качесве ключа словаря. Только кортежи чисел, строк и других таких же кортежей могут быть ключами словаря.
9 | ||
Copyright © 2000, 2001, 2002 Copyright © 2001, 2002, 2003 Перевод, |