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 лекция
Недоступна
Номер кортежа
Номер кортежа
Комментарии (30)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
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])
Иван Уровень 16
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 односимвольных строк (по символам строки '*****'), а не из пяти вводов пользователя.
Иван Уровень 16
17 декабря 2025

ls=[]
while (el:=input()) != 'стоп':
    ls.append(el)
tup = tuple(ls)
if tup:
    print(tup[-1])
else:
    print('Кортеж пустой')
Дмитрий Уровень 35
17 декабря 2025
Совершенно непонятно сформулированное первое задание. Самому придумать стоп-слово и по нему выйти из цикла создания кортежа.
P L Уровень 8
20 октября 2025
Понятно, что задачу нужно делать через списки. Было бы неплохо, если бы в лекции кто-то объяснил, зачем нужно сначала создавать список, а потом преобразовывать в кортеж. Это как-то влияет на производительность кода или просто вырожденная задача ради задачи?
Ilya Shalaev Уровень 10
9 октября 2025
try: n=input("Введите количество элементов кортежа: ") if len(n) <1 : print("пустой кортеж") else: if int(n)==0: print("пустой кортеж") elif int(n)<0: print("Введите положительное число") else: x=tuple(input() for _ in range(int(n))) print(f"последний элемент кортежа: {x[-1]}") except ValueError: print("Введите число!") потратил очень много времени на второе задание ,зато сам во всём сидел разобрался и теперь всё понял
Serhii Viktorovuch Уровень 15
6 сентября 2025
temp_my_tuple = list() for i in range(5): temp_my_tuple.insert(i, input()) my_tuple = tuple(temp_my_tuple) user_index = int(input("Enter index of your needed Element: ")) if user_index >= len(my_tuple): print("index of your needed Element is out of tuple scope") else: print(my_tuple[user_index])
Anonymous #1598703 Уровень 11
9 августа 2025
Что ему нужно? Все же работает! t = tuple([input() for i in range(5) if input() != '']) print(t[-1] if len(t) > 0 else "кортеж пустой") Программа должна корректно обрабатывать случай, когда пользователь не вводит ни одного элемента, и выводить сообщение 'кортеж пустой'.
Viktor Kucheriavyi Уровень 20
8 апреля 2025
Чомусь ця задача виявилась для мене найдовшою по довжені розвʼязування. Якось не хотів приймати мій код, казав, що йому неподобалось. Можете в цілому чекнути, але не засуджуте пліз) taptap = [] # for i in range(0,5): while True: ask = input("say words: ") if ask == "стоп": break else: taptap.append(ask) my_tuple = tuple(taptap) if len(my_tuple) == 0 or all(word == "" for word in my_tuple): print("пустой") else: print(my_tuple[-1])
FreePlay Уровень 8
22 марта 2025
Завдання все тупіші і тупіші. Тобто невже нема тестувальника який перечитає, чи тічер не може сам себе перевірити? Ну як таку дурь можна писати в завданні 1, не учоточнивши як закінчується ввод кортежу. Це тупо неповага до учнів