Python - кортежи
Кортеж - это набор упорядоченных и неизменяемых объектов. Кортежи - это последовательности, как и списки. Различия между кортежами и списками заключаются в том, что кортежи нельзя изменить, в отличие от списков и кортежей, в которых используются круглые скобки, тогда как в списках используются квадратные скобки.
Создать кортеж так же просто, как ввести разные значения, разделенные запятыми. При желании вы также можете поместить эти значения, разделенные запятыми, в круглые скобки. Например -
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
Пустой кортеж записывается в виде двух круглых скобок, ничего не содержащих:
tup1 = ();
Чтобы записать кортеж, содержащий одно значение, вы должны включить запятую, даже если есть только одно значение -
tup1 = (50,);
Как и строковые индексы, индексы кортежей начинаются с 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]
Обновление кортежей
Кортежи неизменяемы, что означает, что вы не можете обновлять или изменять значения элементов кортежа. Вы можете использовать части существующих кортежей для создания новых кортежей, как показано в следующем примере:
#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# Following action is not valid for tuples
# tup1[0] = 100;
# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;
Когда приведенный выше код выполняется, он дает следующий результат:
(12, 34.56, 'abc', 'xyz')
Удалить элементы кортежа
Удаление отдельных элементов кортежа невозможно. Конечно, нет ничего плохого в том, чтобы собрать еще один кортеж с отброшенными нежелательными элементами.
Чтобы явно удалить весь кортеж, просто используйте delзаявление. Например -
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;
Это дает следующий результат. Обратите внимание на возникшее исключение, потому что послеdel 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) | Конкатенация |
('Привет!',) * 4 | («Привет!», «Привет!», «Привет!», «Привет!») | Повторение |
3 в (1, 2, 3) | Правда | Членство |
для x в (1, 2, 3): выведите x, | 1 2 3 | Итерация |
Индексирование, нарезка и матрицы
Поскольку кортежи представляют собой последовательности, индексация и нарезка работают для кортежей так же, как и для строк. Предполагая следующий ввод -
L = ('spam', 'Spam', 'SPAM!')
Выражение Python | Полученные результаты | Описание |
---|---|---|
L [2] | 'СПАМ!' | Смещения начинаются с нуля |
L [-2] | 'Спам' | Отрицательный: считайте справа |
L [1:] | ["Спам", "СПАМ!"] | Нарезка извлекает разделы |
Без ограничивающих рамок
Любой набор из нескольких объектов, разделенных запятыми, записанных без идентифицирующих символов, то есть скобки для списков, скобки для кортежей и т. Д., По умолчанию являются кортежами, как указано в этих коротких примерах -
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;
Когда приведенный выше код выполняется, он дает следующий результат:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
Встроенные функции кортежей
Python включает следующие функции кортежей -
Sr.No. | Функция с описанием |
---|---|
1 | cmp (кортеж1, кортеж2) Сравнивает элементы обоих кортежей. |
2 | len (кортеж) Дает общую длину кортежа. |
3 | макс (кортеж) Возвращает элемент из кортежа с максимальным значением. |
4 | min (кортеж) Возвращает элемент из кортежа с минимальным значением. |
5 | кортеж (последовательность) Преобразует список в кортеж. |