В глубь языка Python


Кортежи


Кортеж — это неизменяемый список. С момента создания кортеж не может быть изменен никакими способами.

Пример 1.22. Определение кортежей

>>> t = ("a", "b", "mpilgrim", "z", "example")

1

>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t[0]

2

'a' >>> t[-1]

3

'example' >>> t[1:3]

4

('b', 'mpilgrim')

Кортеж определяется так же, как и список, но элементы перечисляются в круглых скобках вместо квадратных.
Как и в списках, элементы в кортежах имеют определенный порядок. Точно так же нумерация элементов начинается с нуля, то есть первым элементом непустого кортежа всегда является t[0].
Как и для списков, отрицательные индексы позволяют вести отсчет элементов с конца кортежа.
К кортежам, как и к спискам можно применить операцию среза. Обратите внимание, что срез списка — новый список, а срез кортежа — новый кортеж.

Пример 1.23. У кортежей нет методов

>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t.append("new")

1

Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'append' >>> t.remove("z")

2

Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'remove' >>> t.index("example")

3

Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'index' >>> "z" in t

4

1

Вы не можете добавлять элементы в кортеж. У кортежей нет методов append и extend.
Вы не можете удалять элементы из кортежа. У кортежей нет методов remove и pop.
Вы не можете искать элементы в кортеже с помощью метода index — у кортежей нет такого метода.
Однако, вы можете проверить наличие элемента в кортеже с помощью оператора in.

Так для чего же нужны кортежи?

  • Работа с кортежами быстрее, чем со списками. Если вы определяете постоянный набор значений, и все, что вы хотите с ним когда-либо делать, это перебирать его элементы, используйте кортеж вместо списка.
  • Помните, я сказал, что в качестве могут выступать числа, строки и объекты “некоторых других типов”? Кортежи могут быть ключами словаря, а списки нет.[2]
  • Как мы скоро увидим, кортежи используются для получения форматированного представления.
Замечание
Кортеж может быть преобразован в список и наоборот. Встроенная функция tuple воспринимает список в качестве аргумента и возвращает кортеж с теми же самыми элементами, и функция list воспринимает кортеж в качестве аргумента и возвращает список. В результате tuple “замораживает” список, а list его “размораживает”.
<


Начало  Назад  Вперед