Python Кортеж

Кортежи Python похожи на списки, за исключением того, что элементы кортежа нельзя изменять.

Кортежи используют круглые скобки, списки используют квадратные скобки.

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

Как в следующем примере:

Примеры (Python 2.0+)

tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d"

Создание пустого кортежа

tup1 = ()

Если кортеж содержит только один элемент, после элемента нужно добавить запятую.

tup1 = (50,)

Кортежи похожи на строки: индексация начинается с 0, и их можно нарезать, конкатенировать и т. д.


Доступ к кортежам

В кортежах можно использовать индексы для доступа к значениям кортежа, как в следующем примере:

Примеры (Python 2.0+)

#!/usr/bin/python tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5]

Вывод приведенного выше примера:

tup1[0]:  physics
tup2[1:5]:  (2, 3, 4, 5)

Изменение кортежей

Значения элементов кортежа нельзя изменять, но мы можем объединять и комбинировать кортежи, как в следующем примере:

Примеры (Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # Следующая операция изменения элементов кортежа недопустима. # tup1[0] = 100 # Создать новый кортеж tup3 = tup1 + tup2 print tup3

Вывод приведенного выше примера:

(12, 34.56, 'abc', 'xyz')

Удаление кортежей

Значения элементов кортежа не разрешается удалять, но мы можем использовать оператор del для удаления всего кортежа, как в следующем примере:

Примеры (Python 2.0+)

#!/usr/bin/python tup = ('physics', 'chemistry', 1997, 2000) print tup del tup print "После удаления tup : " print tup

После удаления кортежа в приведенном выше примере при выводе переменной будет сгенерировано сообщение об исключении, как показано ниже:

('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+)

#!/usr/bin/python print 'abc', -4.24e93, 18+6.6j, 'xyz' x, y = 1, 2 print "Значение x , y : ", x,y

Результат выполнения приведённого выше примера:

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

Встроенные функции кортежей

Кортежи Python содержат следующие встроенные функции:

Нет.Метод и описание
1cmp(tuple1, tuple2)
Сравнивает два элемента кортежа.
2len(tuple)
Подсчитывает количество элементов в кортеже.
3max(tuple)
Возвращает максимальное значение элементов в кортеже.
4min(tuple)
Возвращает минимальное значение элементов в кортеже.
5tuple(seq)
Преобразует список в кортеж.
Другие расширения