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

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

Відкрита

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.

2
Задача
Модуль 1: Python Core,  5 рівень,  11 лекція
Недоступна
Зворотний кортеж
Зворотний кортеж
2
Задача
Модуль 1: Python Core,  5 рівень,  11 лекція
Недоступна
Від'ємні кортежі
Від'ємні кортежі
Коментарі (4)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Deits
Рівень 64
4 червня, 18:22
"sub_tuple_with_step = my_tuple[:5] print(sub_tuple_with_step) # (0, 1, 2, 3, 4)" повинно бути: sub_tuple_with_stop = my_tuple[:5] print(sub_tuple_with_stop) # (0, 1, 2, 3, 4) або: sub_tuple_with_stop = my_tuple[::5] print(sub_tuple_with_stop) # (0, 5)
Роман
Рівень 13
23 жовтня 2025, 11:09
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, 19:16
Не коректна умова. Не зрозуміло, чи "стоп" це елемент кортежу чи ні!!! Варто було б вказати в умові що при введенні "стоп" припинити введення. Якби не було б Input data, то неможливо було б здогадатися як пройти перевірку.
DmitriyK_py
Рівень 46
24 жовтня 2024, 21:37
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]