0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>19 дек 2025</li>
2
<ul><li>19 дек 2025</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Рассказываем, как работают методы remove(), pop(), clear() и ключевое слово del.</p>
4
</ul><p>Рассказываем, как работают методы remove(), pop(), clear() и ключевое слово del.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
6
<p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
7
<p>В Python есть много удобных инструментов для работы со списками. И удалять элементы из них можно по-разному. В этой статье мы рассмотрим четыре основных подхода и разберёмся в их функциональности, чтобы понять, когда и какой следует использовать.</p>
7
<p>В Python есть много удобных инструментов для работы со списками. И удалять элементы из них можно по-разному. В этой статье мы рассмотрим четыре основных подхода и разберёмся в их функциональности, чтобы понять, когда и какой следует использовать.</p>
8
<p><strong>Содержание</strong></p>
8
<p><strong>Содержание</strong></p>
9
<ul><li><a>Метод remove(): удаление по значению</a></li>
9
<ul><li><a>Метод remove(): удаление по значению</a></li>
10
<li><a>Метод pop(): удаление по индексу</a></li>
10
<li><a>Метод pop(): удаление по индексу</a></li>
11
<li><a>Метод clear(): очищение списка</a></li>
11
<li><a>Метод clear(): очищение списка</a></li>
12
<li><a>Ключевое слово del: удаление срезов</a></li>
12
<li><a>Ключевое слово del: удаление срезов</a></li>
13
<li><a>Как удалить первый элемент списка в Python</a></li>
13
<li><a>Как удалить первый элемент списка в Python</a></li>
14
<li><a>Как удалить несколько элементов</a></li>
14
<li><a>Как удалить несколько элементов</a></li>
15
</ul><p>remove() можно использовать, когда мы точно знаем значение, от которого хотим избавиться. В качестве аргумента remove() получает объект, находит совпадение и удаляет его, ничего не возвращая:</p>
15
</ul><p>remove() можно использовать, когда мы точно знаем значение, от которого хотим избавиться. В качестве аргумента remove() получает объект, находит совпадение и удаляет его, ничего не возвращая:</p>
16
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.remove(1) print(new_list ) >>> ['ноль', [2.1, 'два и два'], 3, 'IV']<p>Можно удалять и более сложные объекты: например, внутренние списки. Главное - в точности передать этот объект методу:</p>
16
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.remove(1) print(new_list ) >>> ['ноль', [2.1, 'два и два'], 3, 'IV']<p>Можно удалять и более сложные объекты: например, внутренние списки. Главное - в точности передать этот объект методу:</p>
17
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.remove([2.1, 'два и два']) print(new_list) >>> ['ноль', 1, 3, 'IV']<p>remove() удаляет только первое совпадение с искомым элементом. Например, так он себя поведёт, если в списке будет несколько строк 'ноль':</p>
17
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.remove([2.1, 'два и два']) print(new_list) >>> ['ноль', 1, 3, 'IV']<p>remove() удаляет только первое совпадение с искомым элементом. Например, так он себя поведёт, если в списке будет несколько строк 'ноль':</p>
18
change_list = ['ноль', 1, [2.1, 'два и два'], 'ноль', 3, 'IV'] change_list.remove('ноль') print(change_list) >>> [1, [2.1, 'два и два'], 'ноль', 3, 'IV']<p>При попытке удалить значение, которого нет в списке, Python выдаст ошибку ValueError.</p>
18
change_list = ['ноль', 1, [2.1, 'два и два'], 'ноль', 3, 'IV'] change_list.remove('ноль') print(change_list) >>> [1, [2.1, 'два и два'], 'ноль', 3, 'IV']<p>При попытке удалить значение, которого нет в списке, Python выдаст ошибку ValueError.</p>
19
<p>pop() подойдёт, когда известно точное местоположение удаляемого элемента. В качестве аргумента pop() получает индекс, а возвращает удалённое значение:</p>
19
<p>pop() подойдёт, когда известно точное местоположение удаляемого элемента. В качестве аргумента pop() получает индекс, а возвращает удалённое значение:</p>
20
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(2) >>> [2.1, 'два и два'] print(new_list) >>> ['ноль', 1, 3, 'IV']<p>Если передать отрицательное значение, то pop() будет считать индексы не с нуля, а с -1:</p>
20
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(2) >>> [2.1, 'два и два'] print(new_list) >>> ['ноль', 1, 3, 'IV']<p>Если передать отрицательное значение, то pop() будет считать индексы не с нуля, а с -1:</p>
21
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(-2) print(new_list) #Удалили предпоследний элемент >>> ['ноль', 1, [2.1, 'два и два'], 'IV']<p>А вот если оставить pop() без аргумента, то удалится последний элемент - потому что -1 является аргументом по умолчанию:</p>
21
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(-2) print(new_list) #Удалили предпоследний элемент >>> ['ноль', 1, [2.1, 'два и два'], 'IV']<p>А вот если оставить pop() без аргумента, то удалится последний элемент - потому что -1 является аргументом по умолчанию:</p>
22
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop() print(new_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>При попытке обратиться в методе pop() к несуществующему индексу, интерпретатор выбросит исключение IndexError.</p>
22
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop() print(new_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>При попытке обратиться в методе pop() к несуществующему индексу, интерпретатор выбросит исключение IndexError.</p>
23
<p>clear() удаляет из списка всё, то есть буквально очищает его. Он не принимает аргументов и не возвращает никаких значений:</p>
23
<p>clear() удаляет из списка всё, то есть буквально очищает его. Он не принимает аргументов и не возвращает никаких значений:</p>
24
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.clear() print(new_list) >>> []<p>del, как и метод pop(), удаляет элементы списка по индексу. При этом с его помощью можно избавиться как от единичного объекта, так и от целого среза:</p>
24
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.clear() print(new_list) >>> []<p>del, как и метод pop(), удаляет элементы списка по индексу. При этом с его помощью можно избавиться как от единичного объекта, так и от целого среза:</p>
25
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[2] print(new_list) >>> ['ноль', 1, 3, 'IV']<p>Если передать срез, то элемент с правым индексом не удалится. В примере ниже это строка 'IV':</p>
25
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[2] print(new_list) >>> ['ноль', 1, 3, 'IV']<p>Если передать срез, то элемент с правым индексом не удалится. В примере ниже это строка 'IV':</p>
26
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[1:4] print(new_list) >>> ['ноль', 'IV']<p>Чтобы очистить список, достаточно передать полный срез [:]:</p>
26
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[1:4] print(new_list) >>> ['ноль', 'IV']<p>Чтобы очистить список, достаточно передать полный срез [:]:</p>
27
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[:] print(new_list) >>> []<p>Также del можно использовать с отрицательными индексами:</p>
27
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[:] print(new_list) >>> []<p>Также del можно использовать с отрицательными индексами:</p>
28
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[-4] print(new_list) >>> ['ноль', [2.1, 'два и два'], 3, 'IV']<p>Со срезами это тоже работает:</p>
28
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[-4] print(new_list) >>> ['ноль', [2.1, 'два и два'], 3, 'IV']<p>Со срезами это тоже работает:</p>
29
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[-3:-1] print(new_list) >>> ['ноль', 1, 'IV']<p>Если при удалении единичного элемента указать несуществующий индекс, то Python выдаст ошибку<em>IndexError</em>.</p>
29
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[-3:-1] print(new_list) >>> ['ноль', 1, 'IV']<p>Если при удалении единичного элемента указать несуществующий индекс, то Python выдаст ошибку<em>IndexError</em>.</p>
30
<p>Довольно часто, например, при реализации стека, нужно удалить первый элемент списка. Возьмём наш new_list и посмотрим, какими способами это можно сделать.</p>
30
<p>Довольно часто, например, при реализации стека, нужно удалить первый элемент списка. Возьмём наш new_list и посмотрим, какими способами это можно сделать.</p>
31
<p>Передаём в качестве аргумента pop() индекс 0:</p>
31
<p>Передаём в качестве аргумента pop() индекс 0:</p>
32
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(0) print(new_list) >>> [1, [2.1, 'два и два'], 3, 'IV']<p>Используем del с элементом с индексом 0.</p>
32
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] new_list.pop(0) print(new_list) >>> [1, [2.1, 'два и два'], 3, 'IV']<p>Используем del с элементом с индексом 0.</p>
33
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[0] print(new_list) >>> [1, [2.1, 'два и два'], 3, 'IV']<p>Если элементы, от которых нужно избавиться, находятся по соседству друг с другом, то удобнее всего использовать del.</p>
33
new_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del new_list[0] print(new_list) >>> [1, [2.1, 'два и два'], 3, 'IV']<p>Если элементы, от которых нужно избавиться, находятся по соседству друг с другом, то удобнее всего использовать del.</p>
34
<p>Допустим, в последовательности чисел от 0 до 9 нужно удалить 4, 5, 6 и 7. Тогда решение будет выглядеть так:</p>
34
<p>Допустим, в последовательности чисел от 0 до 9 нужно удалить 4, 5, 6 и 7. Тогда решение будет выглядеть так:</p>
35
#Сначала создадим лист с числами от 0 до 9 num_list = list(i for i in range(10)) print(num_list) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #После чего укажем срез чисел от 4 до 7 #Обратите внимание: элемент с индексом 8 не удаляется del num_list[4:8] print(num_list) >>> [0, 1, 2, 3, 8, 9]<p>Если нам требуется удалить элементы, которые находятся не по соседству, то сделать это сложнее: каждая операция будет сдвигать их и менять индексы. Поэтому мы можем удалить не то, что требуется. Чтобы этого избежать, используем обратный порядок: удаление начнём с элементов списка, которые находятся правее.</p>
35
#Сначала создадим лист с числами от 0 до 9 num_list = list(i for i in range(10)) print(num_list) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #После чего укажем срез чисел от 4 до 7 #Обратите внимание: элемент с индексом 8 не удаляется del num_list[4:8] print(num_list) >>> [0, 1, 2, 3, 8, 9]<p>Если нам требуется удалить элементы, которые находятся не по соседству, то сделать это сложнее: каждая операция будет сдвигать их и менять индексы. Поэтому мы можем удалить не то, что требуется. Чтобы этого избежать, используем обратный порядок: удаление начнём с элементов списка, которые находятся правее.</p>
36
<p>Чтобы это сделать, потребуется заранее подготовиться. Для этого индексы элементов отсортируем по убыванию, чтобы наибольший из них оказался первым в последовательности. После этого останется пройтись по индексам и удалить ненужные элементы с помощью del.</p>
36
<p>Чтобы это сделать, потребуется заранее подготовиться. Для этого индексы элементов отсортируем по убыванию, чтобы наибольший из них оказался первым в последовательности. После этого останется пройтись по индексам и удалить ненужные элементы с помощью del.</p>
37
<p>Например, у нас есть список [10, 20, 30, 40, 50, 60, 70, 80]. Из него требуется удалить элементы с индексами 4, 6, 5, 0, 3, то есть индексы идут вразнобой.</p>
37
<p>Например, у нас есть список [10, 20, 30, 40, 50, 60, 70, 80]. Из него требуется удалить элементы с индексами 4, 6, 5, 0, 3, то есть индексы идут вразнобой.</p>
38
<p>Код выглядит так:</p>
38
<p>Код выглядит так:</p>
39
numbers = [10, 20, 30, 40, 50, 60, 70, 80] # Создаём список индексов для удаления indexes_to_delete = [4, 6, 5, 0, 3] # Индексы идут вразнобой sorted_indexes = sorted(indexes_to_delete, reverse=True) # Сортируем индексы в порядке убывания for i in sorted_indexes: del numbers[i] print(numbers)<p>После выполнения получаем результат:</p>
39
numbers = [10, 20, 30, 40, 50, 60, 70, 80] # Создаём список индексов для удаления indexes_to_delete = [4, 6, 5, 0, 3] # Индексы идут вразнобой sorted_indexes = sorted(indexes_to_delete, reverse=True) # Сортируем индексы в порядке убывания for i in sorted_indexes: del numbers[i] print(numbers)<p>После выполнения получаем результат:</p>
40
>>> [20, 30, 80]<p>Если мы хотим избавиться от последнего элемента, то, как и в случае с первым, удобнее всего это сделать с помощью pop() или del.</p>
40
>>> [20, 30, 80]<p>Если мы хотим избавиться от последнего элемента, то, как и в случае с первым, удобнее всего это сделать с помощью pop() или del.</p>
41
<p>Так как по умолчанию метод принимает аргумент -1, то можно вообще ничего не передавать:</p>
41
<p>Так как по умолчанию метод принимает аргумент -1, то можно вообще ничего не передавать:</p>
42
num_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] num_list.pop() print (num_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>Но если вы истинный приверженец дзена Python ("Явное лучше неявного"), то можно указать -1 - ничего не изменится.</p>
42
num_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] num_list.pop() print (num_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>Но если вы истинный приверженец дзена Python ("Явное лучше неявного"), то можно указать -1 - ничего не изменится.</p>
43
<p>А вот если хотите удалить последний элемент с помощью del, то передать -1 нужно обязательно:</p>
43
<p>А вот если хотите удалить последний элемент с помощью del, то передать -1 нужно обязательно:</p>
44
num_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del num_list[-1] print(num_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>Язык Python даёт четыре основных инструмента для удаления элементов из списка:</p>
44
num_list = ['ноль', 1, [2.1, 'два и два'], 3, 'IV'] del num_list[-1] print(num_list) >>> ['ноль', 1, [2.1, 'два и два'], 3]<p>Язык Python даёт четыре основных инструмента для удаления элементов из списка:</p>
45
<ul><li>remove() - удаляет по названию;</li>
45
<ul><li>remove() - удаляет по названию;</li>
46
<li>pop() - удаляет по индексу, положительному или отрицательному;</li>
46
<li>pop() - удаляет по индексу, положительному или отрицательному;</li>
47
<li>clear() - удаляет всё содержимое списка;</li>
47
<li>clear() - удаляет всё содержимое списка;</li>
48
<li>del - позволяет удалить как отдельный элемент, так и целый срез по индексу.</li>
48
<li>del - позволяет удалить как отдельный элемент, так и целый срез по индексу.</li>
49
</ul><p>Python для всех</p>
49
</ul><p>Python для всех</p>
50
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
50
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
51
<p><a>Пройти бесплатно</a></p>
51
<p><a>Пройти бесплатно</a></p>
52
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
52
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>