JavaRush /Курси /Модуль 1: Python Core /Отримання підкортежів

Отримання підкортежів

Модуль 1: Python Core
Рівень 5 , Лекція 11
Відкрита

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] 
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.

Коментарі (3)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Роман Рівень 13
23 жовтня 2025
my_elements = [] def create_reverse_tuple() -> tuple: while True: count_element = 0 element = input(f"Enter element №{count_element + 1} (To end press Enter)") if element == "": break else: my_elements.append(element) my_tuple = tuple(my_elements) return my_tuple[::-1] print(create_reverse_tuple())
В'ячеслав Рівень 8
30 серпня 2025
Не коректна умова. Не зрозуміло, чи "стоп" це елемент кортежу чи ні!!! Варто було б вказати в умові що при введенні "стоп" припинити введення. Якби не було б Input data, то неможливо було б здогадатися як пройти перевірку.
DmitriyK_py Рівень 46
24 жовтня 2024

sub_tuple_with_step = my_tuple[:5] # Отримуємо кожен другий елемент від 0 до 5
print(sub_tuple_with_step) # (0, 1, 2, 3, 4)
повинно бути sub_tuple_with_step = my_tuple[::2]