JavaRush /Курсы /Модуль 1: Python Core /«Изменение» кортежа

«Изменение» кортежа

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

13.1 Добавление элементов

Кортежи — это неизменяемые объекты. После создания кортежа его невозможно изменить. Но очень часто, даже если объект нельзя изменить, нам может понадобиться его изменённая копия.

Именно это сделано с классом str — у него есть два десятка методов, которые не изменяют оригинальный объект str, но возвращают новую строку, соответствующую сути вызываемого метода.

Разработчики Python могли бы добавить к классу tuple методы, которые бы возвращали новый объект при попытке изменить кортеж. Но они этого не сделали. Возможно, чтобы не запутать нас, или по другой причине.

Поэтому все изменения кортежа происходят по следующей схеме:


                список = list(кортеж)
                меняем список тут
                кортеж2 = tuple(список)
                        
Добавление нового элемента — метод append():

Например, вы хотите добавить элемент в кортеж, вот как это может выглядеть:


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # добавляем элемент в список 
my_new_tuple = tuple(my_list)

Добавление группы элементов — метод extend():

Метод extend() позволяет добавить в список сразу несколько элементов. В качестве аргумента метод принимает итерируемый объект (например, другой список, кортеж, множество):


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # добавляем элементы в список
my_new_tuple = tuple(my_list)
        

Вставка в середину — метод insert()

Метод insert() добавляет элемент на указанную позицию в списке. Этот метод принимает два аргумента: индекс, на который следует поместить элемент, и сам элемент:


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # добавляем 0 в самое начало списка
my_new_tuple = tuple(my_list)
    

13.2 Изменение элементов

Если вам нужно поменять какой-то элемент кортежа, то продолжаем работать по схеме:


список = list(кортеж)
# меняем список тут
кортеж2 = tuple(список)

Давайте присвоим первому элементу кортежа последнее значение, а последнему — первое. Вот какой код нам для этого понадобится:


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # меняем значения местами 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 Удаление элементов

Удаляем элементы из кортежа по той же схеме.

Давайте приведем пример, когда мы хотим удалить из кортежа определенное значение


 atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)

print(atuple)  # ('banana', 'cherry') 
        

Обратите внимание, что в конце мы присваиваем новый объект tuple переменной, которая раньше хранила ссылку на оригинальный tuple. Так можно сделать, но оригинальный tuple от этого не изменится. И если где-то выше по коду на него была ссылка, то она и продолжит указывать на оригинальный tuple.

Давайте теперь удалим последний элемент из кортежа.

Вот как будет выглядеть этот код:


atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # удаляем последний элемент
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

Думаю, логика вам понятна. Нельзя удалять элементы из кортежа, но если очень хочется, то можно 😊

2
Задача
Модуль 1: Python Core, 5 уровень, 12 лекция
Недоступна
Добавление элемента
Добавление элемента
2
Задача
Модуль 1: Python Core, 5 уровень, 12 лекция
Недоступна
Группировка кортежей
Группировка кортежей
Комментарии (31)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Stanislav Уровень 10
23 августа 2026

my_tuple = tuple([input("Введите значение: ") for _ in range(6)])
my_list = list(my_tuple)
def group_tuple(my_list):
    return tuple(my_list[i:i+2] for i in range(0, len(my_list), 2))

my_tuple_new = group_tuple(my_list)
mix = my_tuple_new[0] + my_tuple_new[2]

print(my_tuple_new)
print(mix)
Anonymous #6488912 Уровень 51
24 июля 2026
tp = tuple([input() for i in range(6)]) lst_tp = [tp[i : i+2] for i in range(0,6,2)] tp_31 = list(lst_tp[0]) + list(lst_tp[-1]) tp_31 = tuple(tp_31) print(tp_31)
Gunslinger Уровень 13
27 августа 2026
самое нормальное решение. Только третий-четвёртый шаг бесполезен. Можно сразу tuple+tuple, без конвертаций в лист и обратно — пайтон просто новый кортеж создаст.
Andrew Уровень 28
3 июля 2026
Жеееесть... my_list = [] for i in range(6): i = input('вводи данные в кортеж') my_list.append(i) my_tup = tuple(my_list) my_listt = list(my_tup) my_list1 = my_listt[0:2] my_list2 = my_listt[2:4] my_list3 = my_listt[-2:] my_list4 = my_list1 + my_list3 my_tuple = tuple(my_list4) print(my_tuple)
Anonymous #6488912 Уровень 51
24 июля 2026
a,b,c = [tp[i : i+2] for i in range(0,6,2)]
Алексей Тумель Уровень 21
6 мая 2026
myt = tuple(input() for _ in range(6)) a = myt[:2] b = myt[2:4] c = myt[4:] print(myt[:2]+ myt[4:]) #-------------DONE-------------
PaPaY Уровень 13
18 марта 2026

user_list = []

for i in range(6):
    index = input(f"Введіть {i + 1} елемент? (залишилось {6 - (i + 1)}) :  ")
    user_list.append(index)
user_tuple = tuple(user_list)
first_user_tuple,second_user_tuple,third_user_tuple = tuple(user_list[0:2]),tuple(user_list[2:4]),tuple(user_list[4:6])
new_user_tuple = first_user_tuple + third_user_tuple
print(new_user_tuple)
PaPaY Уровень 13
18 марта 2026

user_list = []

for i in range(5):
    index = input(f"Введіть {i + 1} елемент? (залишилось {5 - (i + 1)}) :  ")
    user_list.append(index)

user_tuple = tuple(user_list)
print(user_tuple)
new_user_list = list(user_tuple)
new_user_list.append(input("Введіть елемент який хочете додати до кортежу: "))
new_user_tuple = tuple(new_user_list)
print(new_user_tuple)
Anonymous #3526511 Уровень 9
20 февраля 2026
tuple_1 = tuple(input("Введите элемент: ") for _ in range(int(6))) x, y, z = tuple_1[:2], tuple_1[2:4], tuple_1[4:] new_tuple_1 = x + z print(new_tuple_1)
Anonymous #3526511 Уровень 9
20 февраля 2026
tuple_1 = tuple(input("Введите элемент: ") for _ in range(int(5))) my_list = list(tuple_1) my_list.append(input("Введите элемент: ")) new_tuple_1 = tuple(my_list) print(new_tuple_1)
Anonymous #1 Уровень 1
9 февраля 2026
В первой задаче мы создаем список чтоб заполнить его, переделыввем его в кортеж, чтоб переделать его в список и переделать в кортеж... я как будто снова в армии
Анатолий Уровень 63
25 января 2026
Во второй задаче в ответах прменяется суммирование кортежей, хотя в этом уроке пока этого не было