Кортеж представляет собой последовательность из неизменных объектов в Python. Кортежи это последовательности, такие же, как и списки. Основное отличие между кортежами и списками является то, что кортежи не могут быть изменены в отличии от списков. Кортеж использует круглые скобки, в то время как списки используют квадратные скобки.
Создание кортежа просто, необходимо установить различные значения, разделенные запятой. По желанию, вы можете поместить эти значения, разделенные запятыми в скобках. Например:
tup1 = ('andreyex', 'chemistry', 2017, 2010) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d"
Пустой кортеж записывается в виде двух круглых скобок, ничего не содержащих:
tup1 = ();
Для того, чтобы написать кортеж, содержащий одно значение, вы должны включить запятую, даже если есть только одно значение:
tup1 = (50,)
Как строковые индексы, индексы кортежей начинаются с 0, их можно вырезать, объединять, и так далее.
Чтобы получить доступ к значениям в кортеже, это использования квадратных скобок вместе с индексом или индексами, чтобы получить значение находящегося по этому индексу. Например:
#!/usr/bin/python3 tup1 = ('andreyex', 'chemistry', 2017, 2010) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print ("tup1[0]: ", tup1[0]) print ("tup2[1:5]: ", tup2[1:5])
Когда этот код выполниться, он выдаст следующий результат:
tup1[0]: andreyex tup2[1:5]: (2, 3, 4, 5)
Кортежи неизменны, что означает, что вы не можете обновить или изменить значение элементов кортежа. Вы можете взять части существующих кортежей для создания новых кортежей, как показано в следующем примере:
#!/usr/bin/python3 tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # Следующее действие не является допустимым для кортежей # tup1[0] = 100; # Давайте создадим новый кортеж следующим образом tup3 = tup1 + tup2 print (tup3)
Когда этот код выполниться, он выдаст следующий результат:
(12, 34.56, 'abc', 'xyz')
Удаление отдельных элементов в кортежей не представляется возможным. Кортеж с нежелательными элементами отбрасывается.
Чтобы явно удалить весь кортеж, просто используйте заявление del. Например:
#!/usr/bin/python3 tup = ('andreyex', 'chemistry', 2017, 2010); print (tup) del tup; print "После удаления tup : " print tup
Это приводит к следующему результату:
('andreyex', 'chemistry', 2017, 2010) After deleting tup : Traceback (most recent call last): File "test.py", line 9, in <module> print tup; NameError: name 'tup' is not defined
Кортеж реагирует на операторы + и *, строки; с ними производят конкатенацию и повторение, за исключением того, что результатом является новый кортеж, а не строка.
На самом деле, кортежи реагируют на все основные операции последовательности, которые мы использовали на строки в предыдущей главе.
Выражение в Python | Результаты | Описание |
---|---|---|
а ((1, 2, 3)) | 3 | длина |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | конкатенация |
( ‘Привет!’,) * 4 | ( ‘Привет!’, ‘Привет!’, ‘Привет!’, ‘Привет!’) | Повторение |
3 в (1, 2, 3) | true | членство |
for x in (1,2,3) : print (x, end = ‘ ‘) | 1 2 3 | итерация |
Так как кортежи являются последовательностями, индексирование и нарезка работает точно так же для кортежей, как они делают для строк, предполагая, что следующий вход:
T=('C++', 'Java', 'Python')
Выражение в Python | Результаты | Описание |
---|---|---|
T [2] | ‘Python’ | Смещение начинаются с нуля |
Т [-2] | ‘Java’ | Отрицательный: отсчет с правой стороны |
T [1:] | ( ‘Java’, ‘Python’) | Нарезка выбирает разделы |
Нет ограждающих разделителей, это не любой набор из нескольких объектов, разделенных запятыми, написанные без идентифицирующих символов, то есть, скобки для списков, скобки для кортежей и т.д., по умолчанию для кортежей, как указано в этих коротких примерах.
Python включает в себя следующие функции кортежей:
S.No. | Описание функции |
---|---|
1 | cmp(tuple1, tuple2) – Сравнивает элементы обоих кортежей. |
2 | len(tuple) – Дает общую длину кортежа. |
3 | max(tuple) – Возвращает элемент из кортежа с максимальным значением. |
4 | min(tuple) – Возвращает элемент из кортежа с минимальным значением. |
5 | tuple(seq) – Преобразование списка в кортеж. |