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

«Зміна» кортежу

Відкрита

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 лекція
Недоступна
Групування кортежів
Групування кортежів
Коментарі (3)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Олег
Рівень 10
18 липня, 20:26
my_list[0], my_list[-1] = my_list[-1], my_list[0] # змінюємо значення місцями щось тут я підвис...
Максим
Рівень 9
18 березня 2025, 13:05
але ж по факту ми не змінюємо кортеж...
Давайте тепер видалимо останній елемент з кортежу.

Ось як виглядатиме цей код:
atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # видаляємо останній елемент
atuple = tuple(alist)

print(atuple)  # ('apple', 'banana')
Думаю, логіка вам зрозуміла. Не можна видаляти елементи з кортежу, але якщо дуже хочеться, то можна 😊
DmitriyK_py
Рівень 46
24 жовтня 2024, 22:12