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')
Думаю, логика вам понятна. Нельзя удалять элементы из кортежа, но если очень хочется, то можно 😊
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ