JavaRush /Курси /Модуль 1: Python Core /Зміна списку

Зміна списку

Модуль 1: Python Core
Рівень 5 , Лекція 3
Відкрита

5.1 Додавання елементів

У Python додавання елементів у список можна здійснити різними способами, що робить списки одними з найбільш гнучких структур даних у мові. Ось основні методи, які Python надає для додавання елементів у список:

Використання методу append()

Метод append() додає елемент в кінець списку. Це найпростіший і часто використовуваний метод для додавання одного елемента:


my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # Виведе [1, 2, 3, 4] 
        

Використання методу extend()

Метод extend() дозволяє додати в список одразу декілька елементів. Як аргумент метод приймає ітерований об'єкт (наприклад, інший список, кортеж, множина):


my_list = [1, 2, 3, 4]
my_list.extend([5, 6])
print(my_list)  # Виведе [1, 2, 3, 4, 5, 6]
        

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

Метод insert() додає елемент на вказану позицію в списку. Цей метод приймає два аргументи: індекс, на який слід помістити елемент, і сам елемент:


my_list = [1, 2, 3, 4, 5, 6]
my_list.insert(0, 0)
print(my_list)  # Виведе [0, 1, 2, 3, 4, 5, 6]
    

Додавання елементів за допомогою оператора додавання

Списки також можна об'єднувати за допомогою оператора «+», що також призводить до додавання елементів одного списку в інший:


my_list = [0, 1, 2, 3, 4, 5, 6]
my_list = my_list + [7, 8]
print(my_list)  # Виведе [0, 1, 2, 3, 4, 5, 6, 7, 8]
        

Особливості та застереження

При використанні append() і extend() змінюється початковий список. Проте при використанні «+» створюється новий список, тому якщо у вас десь залишилась посилання на старий список, то він залишиться незмінним.

5.2 Пряме зміна елемента

У Python зміна елементів у списку є простою операцією завдяки мутабельності (змінності) списків. Це дозволяє модифікувати списки на місці, не створюючи нових копій. Ось як можна працювати з цими можливостями:

Пряме зміна елементів

Щоб змінити елемент у списку, достатньо присвоїти нове значення за індексом:


my_list = [1, 2, 3, 4]
my_list[2] = 30 
print(my_list)  # Виведе [1, 2, 30, 4] 
        

5.3 Присвоєння діапазону елементів:

У Python присвоєння діапазону елементів у списку здійснюється за допомогою зрізів. Зрізи дозволяють не лише отримувати підсписки, але й присвоювати їх. Це робить списки в Python особливо гнучкими для роботи з послідовностями даних.

Використання зрізів для присвоєння

Зрізи в Python можуть використовуватися для зміни декількох елементів списку одразу. Наприклад, можна замінити частину списку іншими значеннями, вказавши зріз і присвоївши йому новий список елементів:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:5] = [20, 30, 40]
print(numbers)  # Виведе [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]
        

Кількість елементів зліва і справа від знаку рівності не обов'язково повинна співпадати.

Елементів справа може бути більше:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:2] = [20, 30, 40]
print(numbers)  # Виведе [0, 1, 20, 30, 40, 2, 3, 4, 5, 6, 7, 8, 9]
        

Або менше:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:9] = [20, 30, 40]
print(numbers)  # Виведе [0, 1, 20, 30, 40, 9]
        

Такий підхід дозволяє писати дуже компактний код, але не забувайте, що у разі роботи зі зрізами, останній елемент не входить в діапазон.

Коментарі (4)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Дмитро Рівень 30
5 жовтня 2025
Опа, прикольно. А на попередніх завданнях метод append не показувало в доступних, коли після крапки набираєш "ap", хоча все працювало))) От тут чомусь заморочились і прибрали зайві методи, щоб не лякати новачків, а на норм переклад, часу вже не вистачило...
Tony Рівень 35
15 червня 2025
в п.5.2. коректніше вказати "Пряма" замість "Пряме"
Шевцов Лев Рівень 20
25 березня 2025
Якщо використовувати код, що зазначений у правильній відповіді то програма замінить лише 3 елемент, 4 і 5 залишаться без змін. Виправте
DmitriyK_py Рівень 46
23 жовтня 2024
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] numbers[2:9] = [20, 30, 40] print(numbers) # Виведе [0, 20, 30, 40, 9] Виведе [0, 1, 20, 30, 40, 9]