Python Кортеж
Кортежи Python похожи на списки, за исключением того, что элементы кортежа нельзя изменять.
Кортежи используют круглые скобки, списки используют квадратные скобки.
Создание кортежа просто: нужно лишь поместить элементы в круглые скобки, разделив их запятыми.
Как в следующем примере:
Примеры (Python 2.0+)
Создание пустого кортежа
tup1 = ()
Если кортеж содержит только один элемент, после элемента нужно добавить запятую.
tup1 = (50,)
Кортежи похожи на строки: индексация начинается с 0, и их можно нарезать, конкатенировать и т. д.
Доступ к кортежам
В кортежах можно использовать индексы для доступа к значениям кортежа, как в следующем примере:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
tup1[0]: physics tup2[1:5]: (2, 3, 4, 5)
Изменение кортежей
Значения элементов кортежа нельзя изменять, но мы можем объединять и комбинировать кортежи, как в следующем примере:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
(12, 34.56, 'abc', 'xyz')
Удаление кортежей
Значения элементов кортежа не разрешается удалять, но мы можем использовать оператор del для удаления всего кортежа, как в следующем примере:
Примеры (Python 2.0+)
После удаления кортежа в приведенном выше примере при выводе переменной будет сгенерировано сообщение об исключении, как показано ниже:
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup
NameError: name 'tup' is not defined
Операции с кортежами
Как и строки, кортежи можно обрабатывать с помощью знаков + и *. Это означает, что их можно объединять и копировать, а в результате операции создается новый кортеж.
| Выражение Python | Результат | Описание |
|---|---|---|
| len((1, 2, 3)) | 3 | Подсчет количества элементов |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Конкатенация |
| ('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | Повторение |
| 3 in (1, 2, 3) | True | Проверка наличия элемента |
| for x in (1, 2, 3): print x, | 1 2 3 | Итерация |
Индексация и срезы кортежей
Поскольку кортеж тоже является последовательностью, мы можем обращаться к элементам в определённых позициях кортежа, а также делать срез части элементов по индексу, как показано ниже:
Кортеж:
L = ('spam', 'Spam', 'SPAM!')
| Выражение Python | Результат | Описание |
|---|---|---|
| L[2] | 'SPAM!' | Чтение третьего элемента |
| L[-2] | 'Spam' | Чтение в обратном порядке, чтение предпоследнего элемента |
| L[1:] | ('Spam', 'SPAM!') | Срез элементов |
Нет закрывающего разделителя
Любые объекты без обрамляющих разделителей, разделённые запятыми, по умолчанию образуют кортеж, как в следующем примере:
Примеры (Python 2.0+)
Результат выполнения приведённого выше примера:
abc -4.24e+93 (18+6.6j) xyz Value of x , y : 1 2
Встроенные функции кортежей
Кортежи Python содержат следующие встроенные функции:
| Нет. | Метод и описание |
|---|---|
| 1 | cmp(tuple1, tuple2) Сравнивает два элемента кортежа. |
| 2 | len(tuple) Подсчитывает количество элементов в кортеже. |
| 3 | max(tuple) Возвращает максимальное значение элементов в кортеже. |
| 4 | min(tuple) Возвращает минимальное значение элементов в кортеже. |
| 5 | tuple(seq) Преобразует список в кортеж. |