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