JavaRush /Курсы /Модуль 1: Python Core /Работа с кортежами

Работа с кортежами

Модуль 1: Python Core
5 уровень , 10 лекция
Открыта

11.1 Определение количества элементов в кортеже

Кортежи — это неизменяемые последовательности, которые могут содержать разные типы данных. Использование встроенной функции len() для кортежа позволяет определить количество элементов в нем. Давайте начнем с этого.

Пример использования функции len() с кортежом:


my_tuple = (1, 2, 3, 4, 5)
print(len(my_tuple))  # Выведет 5 
        

В функцию len() можно передать как переменную, содержащую кортеж, так и сам кортеж напрямую. Примеры:


print(len(()))  # Выведет 0 
print(len((1, 2, 3)))  # Выведет 3
print(len(((1, 2, 3),)))  # Выведет 1
        

Если не считать распаковку кортежа, то определение количества его элементов – это самая частая операция с кортежем 😊

11.2 Тип кортежа

Использование функции type() при работе с кортежами (tuple) позволяет вам определить, является ли переменная кортежем, что особенно важно в контексте динамической типизации в Python.

Пример:


my_tuple = (1, 2, 3)
print(type(my_tuple))  # Выведет <class 'tuple'> 
       
        

Проверка на то, что переменная содержит нужный тип выглядит так:


my_tuple = (1, 2.5, 'string', [3, 4])
if type(my_tuple) == tuple:
    print("Tuple!")  # Выведет: Tuple! 
        

11.3 Получение элемента

Получение элементов кортежа (tuple) осуществляется через индексацию, подобно спискам. Кортежи — это упорядоченные и неизменяемые коллекции, что позволяет получать доступ к элементам по их индексу.

Важно! Индексы начинаются с нуля, поэтому первый элемент кортежа имеет индекс 0, второй — 1, и так далее. Python также поддерживает отрицательные индексы, где -1 ссылается на последний элемент кортежа, -2 — на предпоследний и так далее.

Чтобы обратиться к конкретному элементу кортежа, используйте квадратные скобки с индексом элемента. Общий вид такой операции имеет вид:


tuple[индекс]

Пример:


my_tuple = ('apple', 'banana', 'cherry')
print(my_tuple[1])  # Выведет 'banana'
print(my_tuple[2])  # Выведет 'cherry'  
        

Так же, как и при работе со списками, кортеж поддерживает отрицательные индексы.

Получение последнего элемента из кортежа:


my_tuple = ('apple', 'banana', 'cherry')
print(my_tuple[-1])  # Выведет 'cherry'
        

Получение предпоследнего элемента из кортежа:


my_tuple = ('apple', 'banana', 'cherry')
print(my_tuple[-2])  # Выведет 'banana' 
        
2
Задача
Модуль 1: Python Core, 5 уровень, 10 лекция
Недоступна
Пользовательский кортеж
Пользовательский кортеж
2
Задача
Модуль 1: Python Core, 5 уровень, 10 лекция
Недоступна
Номер кортежа
Номер кортежа
Комментарии (37)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
PaPaY Уровень 13
17 марта 2026

my_list = []

for i in range(5):
    item = input(f"Введіть свій елемент номер {i+1}:")
    my_list.append(item)

my_tuple = tuple(my_list)

user_index = int(input("До якого індексу ви бажаєте звернутися від 0 до 4: "))

if 0 <= user_index < len(my_tuple):
    print(my_tuple[user_index])
else:
    print("Такого індексу немає")
Людмила Уровень 11
13 марта 2026
my_tuple = tuple(input("Enter a tuple item: ") for k in range(5)) index = int(input("Enter a number: ")) try: print(my_tuple[index]) except IndexError: print("Index Error")
Anonymous #3526511 Уровень 9
19 февраля 2026
tuple_inp = tuple(input("Введите элемент: ") for _ in range(int(5))) try: print(tuple_inp[int(input("Введите индекс элемента "))]) except (ValueError, IndexError): print("индекс выходит за пределы кортежа")
Anonymous #3526511 Уровень 9
19 февраля 2026
tuple_inp = tuple(input() for _ in range(int(input()))) if len(tuple_inp) == 0: print("Кортеж пустой!") else: print(tuple_inp[-1])
Анатолий Уровень 63
25 января 2026
в ответах второй задачи "Номер кортежа" не учтено, что индекс может быть отрицательным

my_list = []
for i in range(5):
    my_list.append(input())
my_tuple = tuple(my_list)
index = int(input())
print(my_tuple[index]) if  -len(my_tuple) <= index < len(my_tuple) else print("индекс за границами кортежа")
Анатолий Уровень 63
25 января 2026

my_list = []
for i in range(int(input())):
    my_list.append(input())
my_tuple = tuple(my_list)
print(my_tuple[-1]) if len(my_tuple)>0 else print("кортеж пустой")
b1rdy Уровень 10
30 декабря 2025

def user_tuple():
    elements = []
    while True:
        element = input("Введите элемент (стоп для выхода): ")
        if element.lower() == "стоп":
            break
        elements.append(element)
    return tuple(elements)


my_tuple = user_tuple()

if len(my_tuple) == 0:
    print("Кортеж пустой!")
else:
    print(my_tuple[-1])
Иван Уровень 44
17 декабря 2025
ИИ тоже ошибается. Решение верное

tup = tuple(input() for _ in ('*****'))
if -len(tup) <= (i:=int(input())) < len(tup):
    print(tup[i])
else:
    print('Нет индекса')
А ИИ выдаёт ошибку: Использовать создание кортежа из 5 отдельных вводов, например: tuple(input() for _ in range(5)). Текущая реализация tuple(input() for _ in ('*****')) создаёт кортеж из 5 односимвольных строк (по символам строки '*****'), а не из пяти вводов пользователя.
Иван Уровень 44
17 декабря 2025

ls=[]
while (el:=input()) != 'стоп':
    ls.append(el)
tup = tuple(ls)
if tup:
    print(tup[-1])
else:
    print('Кортеж пустой')
Дмитрий Уровень 1
17 декабря 2025
Совершенно непонятно сформулированное первое задание. Самому придумать стоп-слово и по нему выйти из цикла создания кортежа.
soqwertysiewood Уровень 13
22 июня 2026
Согласен !