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.

undefined
2
Задача
Модуль 1: Python Core, 5 уровень, 11 лекция
Недоступна
Обратный кортеж
Обратный кортеж
undefined
2
Задача
Модуль 1: Python Core, 5 уровень, 11 лекция
Недоступна
Отрицательные кортежи
Отрицательные кортежи