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]
        

Такой подход позволяет писать очень компактный код, но не забывайте, что в случае работы со срезами, последний элемент не входит в диапазон.

2
Задача
Модуль 1: Python Core, 5 уровень, 3 лекция
Недоступна
Кто хочет добавки?
Кто хочет добавки?
2
Задача
Модуль 1: Python Core, 5 уровень, 3 лекция
Недоступна
Стиратель
Стиратель
Комментарии (12)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
VasliyD Уровень 11
1 мая 2025
Решение my_list[2:5] = [el, el, el] не прошло, хотя вроде корректное🤔
Simona Hub Уровень 9
13 мая 2025
заменяет элементы с третьего по пятый на одно значение (1 элемент) а тут три непонятных элемента, который не юзер ввел а ты !!! [el, el, el] это должден вводить юзер что то типа такого: element = int(input()) numbers[3:5] = [element]
Шамиль Ахметов Уровень 31
25 апреля 2025
во второй задаче когда срезаем массив нужно добавить не просто элемент а элемент в массиве [элемент]
Mr.Robot Уровень 21 Expert
9 января 2025
Намек к решению второй задачи: вспоминаем про "иммутабельность" )
SWK Уровень 26
19 марта 2025
При чём тут иммутабельность? Проблема, в которую, как я предполагаю, упирается большинство студентов - то, что строка в пайтоне - массив (list) букв. Соответственно, нужно как-то исхитриться указать, что вставляется не массив в массив, а единое значение в массив.
Александр Уровень 19 Expert
5 января 2025
Внимание друзья, во второй задаче три элемента нужно заменить на один ! Строго один "77", а не два "7" и "7". И вот я не смог догадаться как это сделать. Простое присвоение срезу нового значения не работает, т.к. в качестве аргумента команды присваивания нужно использовать итерируемый список, и строка "77" воспринимается как два элемента. Решение как сделать строку одним элементом лежит на поверхности, но я не догадался, пришлось спрашивать у gpt. Вам говорить не буду, оставлю возможность подумать.
Optimus Уровень 7
17 февраля 2025
Так решение в примере в лекции
Виталий Уровень 21
12 декабря 2024
В лекции ошибка: должно быть: [0, 1, 20, 30, 40, 9] , а не # Выведет [0, 20, 30, 40, 9]
Anonymous #3527253 Уровень 21
4 декабря 2024
я честно в шоке: решение

my_list = [i for i in range(0, 10)]

new_element = input(f'Enter new value for elements: ')
for i in my_list[2:5]:
    my_list.append(new_element)

print(my_list)
не принято, НО принято решение вида (тоже не верное, кстати):

my_list = [i for i in range(0, 10)]
new_my_list = []
new_element = input(f'Enter new value for elements: ')
for i in my_list[2:5]:
    new_my_list.append(new_element)

my_list[2:5] = new_my_list

print(my_list)
Anonymous #3527253 Уровень 21
4 декабря 2024
а можно условия задачи писать так, чтобы их можно было понять не с 10 попытки?

•	Программа должна запросить у пользователя значение для замены элементов с третьего по пятый.
•	Программа должна заменить элементы с третьего по пятый в списке на один элемент, введенный пользователем.
так мы и просим пользователя ввести 3 значения, а по факту оказывается нужно одно значение
Олег Е Уровень 70
25 декабря 2024
там же чётко написано, что нужно заменить на один элемент!
Slevin Уровень 64
23 июня 2025
Это мягкая тренировка для будущего общение с заказчиками