В моих предыдущих переподготовках, к которым вы можете получить доступ из серии навигационных ссылок в верхней части этой статьи, я говорил о двух важных концепциях Python, которые вы должны понять, чтобы продвинуться вперед в своем обучающем путешествии по Python.
Этот урок является продолжением серии обновлений Python, и сегодня я буду говорить о кортежах . Таким образом, у вас будет три важных понятия в вашем кармане, и вы будете готовы углубиться в язык Python.
Итак, давайте продолжим и перейдем непосредственно к этой интересной теме Tuples .
Как насчет кортежей?
Если вы поняли списки , кортежи будут очень просты для понимания, потому что они похожи на списки за исключением двух основных отличий:
- Кортежи являются неизменяемыми, поэтому после создания кортежа вы не сможете изменить его содержимое или даже размер, если не сделаете копию этого кортежа.
- Они пишутся в скобках
( )
а не в квадратных скобках[ ]
.
Таким образом, как вы можете догадаться, кортежи состоят из набора упорядоченных объектов, которые могут быть любого типа (например, строки, списки, словари, кортежи и т. Д.) И доступны по индексу (смещению), в отличие от словарей, где элементы доступны по ключу . Здесь важно отметить, что кортежи хранят ссылки на объекты, которые они содержат.
Прежде чем перейти к некоторым операциям Tuple, давайте посмотрим, как выглядит простой Tuple:
tup = (1)
Это простой кортеж, который содержит один элемент, целочисленное значение. Выход этого кортежа будет 1
.
Другой пример Tuple с тремя элементами разных типов объектов выглядит следующим образом:
tup = (31,'abder',4.0)
Выход для вышеприведенного утверждения:
(31, 'abder', 4.0)
Вы даже можете написать вышеупомянутый кортеж без скобок следующим образом:
tup = 31,'abder',4.0
Очень гибкий, не правда ли?
В качестве последнего примера, давайте посмотрим, как будет выглядеть вложенный кортеж:
nested_tuple = ('ID', ('abder', 1234))
Операции с кортежем
Давайте теперь пройдемся по некоторым операциям Tuple.
конкатенация
Объединение — это комбинация кортежей вместе. Скажем, у нас есть следующие два кортежа:
tuple1 = (1,2,3,4,5)
tuple2 = (6,7,8,9,10)
Чтобы tuple1
и tuple2
, мы просто tuple2
:
tup = tuple1 + tuple2
Обратите внимание, что мы использовали оператор +
для выполнения конкатенации. Это приведет к следующему выводу:
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Повторение
Повторение кортежа просто выполняется с помощью оператора *
. Если мы хотим повторить tuple1
три раза, мы делаем следующее:
tuple1 * 3
Результат этого утверждения:
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
членство
Чтобы проверить членство какого-либо элемента в кортеже, мы используем следующее:
7 in tuple1
Это вернет False
поскольку 7
не принадлежит tuple1
.
Поиск
Чтобы указать, где находится какой-либо элемент в кортеже, мы используем index
. Например, если мы хотим найти местоположение элемента 5
в tuple1
, мы делаем следующее:
tuple1.index(5)
В этом случае возвращаемое значение будет 4
, которое является местоположением элемента 5
.
подсчитывать
Хорошей операцией в Tuples является подсчет количества раз, когда элемент существует в Tuple. Скажем, у нас есть следующий кортеж:
tuple3 = (65,67,5,67,34,76,67,231,98,67)
Если мы хотим увидеть, сколько раз 67
существует в tuple3
, мы просто делаем следующее:
tuple3.count(67)
Результат для этого утверждения должен быть 4
раза.
индексирование
Индексирование — это процесс доступа к элементу Tuple по индексу (индекс). Если мы хотим получить доступ к пятому индексу в tuple3
, мы делаем следующее:
tuple3[4]
который вернется 34
.
Индекс также может быть отрицательным, то есть отсчет начнется справа от кортежа. Таким образом, результат tuples3[-6]
будет равен 34
, при условии, что диапазон отрицательных индексов в tuples3
равен [-1,-10]
.
Что если вы выбрали индекс из этого диапазона? Как например tuples3[-11]
? Вот что вы получите в этом случае:
Traceback (most recent call last):
File "tuple.py", line 2, in <module>
print tuple3[-11]
IndexError: tuple index out of range
Обратите внимание, что отрицательные индексы начинаются с -1
. Итак, если вы ввели индекс как -0
, это то же самое, что и индекс 0
. Таким образом, tuples3[-0]
вернет 65
.
нарезка
В отличие от индексации , которая в результате дает нам один элемент, срезы предоставляют нам последовательность элементов. Примером нарезки является следующее утверждение:
tuples3[2:5]
Вывод этого утверждения может показаться запутанным в начале:
(5, 67, 34)
Обратите внимание, что 76
не включен, хотя в действительности он находится в индексе 5
. Это связано с тем, что при нарезке start
индекс всегда включен, а end
индекс исключен, то есть end - 1
.
Другой пример Tuples выглядит следующим образом:
tuples3[:4]
Результат этого заявления будет следующим:
(65, 67, 5, 67)
Теперь это небольшая викторина для вас. Каков вывод следующего утверждения?
tuples3[4:]
Вывод
Вы можете найти больше информации о Tuples из документации Python . Как вы могли заметить, хотя кортежи работают аналогично спискам, у них не так много методов, как списков, поскольку кортежи, как упоминалось выше, являются неизменяемыми, то есть содержимое кортежа не может быть изменено.