12.1 Диапазон индексов
Код для получения подкортежа выглядит так же, как и для получения подсписка. В этом плане кортежи очень на них похожи. Не хотелось бы дублировать материал, но повторение — мать учения…
Получение подкортежей, или slicing, позволяет извлекать части кортежа для создания новых кортежей. Этот процесс особенно полезен, когда необходимо работать с определенными сегментами данных, сохраненных в кортеже.
Синтаксис срезов
Срезы создаются с использованием квадратных скобок, внутри которых указываются начальный и конечный индексы, разделенные двоеточием. Если начальный индекс не указан, срез начинается с первого элемента; если конечный индекс не указан, срез идет до конца кортежа.
Срез кортежа можно получить, используя синтаксис tuple[start:stop:step], где:
-
start
— начальный индекс элемента (включительно); -
stop
— конечный индекс элемента (не включительно); -
step
— шаг, с которым происходит выборка элементов.
Примеры:
my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:4] # Получаем подкортеж с элементами от индекса 1 до 3
print(sub_tuple) # Выведет (1, 2, 3)
sub_tuple_with_step = my_tuple[0:6:2] # Получаем каждый второй элемент от 0 до 5
print(sub_tuple_with_step) # Выведет (0, 2, 4)
Если start
не указан, то по умолчанию он равен 0, а если stop
не указан — он равен len(tuple)
. Параметр step
по умолчанию равен 1.
Примеры:
my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:] # Получаем подкортеж с элементами от индекса 1 до 5
print(sub_tuple) # Выведет (1, 2, 3, 4, 5)
sub_tuple_with_step = my_tuple[:5] # Получаем каждый второй элемент от 0 до 5
print(sub_tuple_with_step) # (0, 1, 2, 3, 4)
12.2 Отрицательные индексы
Отрицательные индексы в Python начинаются с -1, что соответствует последнему элементу списка (или кортежа). -2 будет указывать на предпоследний элемент и так далее. Использование отрицательных индексов упрощает доступ к элементам с конца кортежа без необходимости вычислять их позицию от начала.
Примеры использования
Давайте рассмотрим использование отрицательных индексов для формирования среза. Предположим, у нас есть кортеж со значениями:
my_tuple = (10, 20, 30, 40, 50, 60, 70, 80)
Чтобы получить подкортеж, содержащий элементы с конца до середины кортежа, мы можем использовать отрицательные индексы. Например, выберем элементы с третьего с конца до пятого с начала:
sub_tuple = my_tuple[-3:-1]
print(sub_tuple) # Выведет (60, 70)
Таким образом, my_tuple[-3:-1]
выберет элементы с индексами -3
(третий с конца) до -1
(не включая последний), что даст нам кортеж (60, 70).
Получение последнего элемента кортежа:
my_tuple = (10, 20, 30, 40, 50)
last_element = my_tuple[-1]
print(last_element) # Выведет 50
Здесь, my_tuple[-1]
всегда будет возвращать последний элемент кортежа, что очень удобно, когда точное количество элементов в кортеже неизвестно.
Разворот элементов кортежа задом наперед:
my_tuple = (10, 20, 30, 40, 50)
reversed_tuple = my_tuple[::-1]
print(reversed_tuple) # Выведет (50, 40, 30, 20, 10)
Использование среза [::-1] позволяет легко и эффективно перевернуть порядок элементов в кортеже, получая новый кортеж с элементами в обратном порядке.
12.3 Есть ли элемент в кортеже
Проверка наличия элемента в кортеже — стандартная операция, позволяющая узнать, есть ли элемент в кортеже.
Это делается с помощью оператора in
, который возвращает True, если элемент присутствует в кортеже, и False в противном случае.
Использование оператора in
Оператор in
является простым и интуитивно понятным способом для проверки наличия элемента:
my_tuple = (1, 2, 3, 4, 5)
element = 3
if element in my_tuple:
print(f"{element} is in the tuple.")
else:
print(f"{element} is not in the tuple.")
Проверка, что элемент отсутствует:
Если вы хотите убедиться, что элемент отсутствует в кортеже, просто используйте конструкцию not in
:
names = ('Alice', 'Bob', 'Charlie')
search_name = 'Alice'
if search_name not in names:
print(f"{search_name} не в кортеже.")
else:
print(f"{search_name} в кортеже.")
Почти не отличается от работы со списком — в этом и есть универсальность и простота Python.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ