Списки

Удаление элементов из списка по условию. Как это работает?

Имеется кусок кода, который должен удалять все элементы из списка, которые меньше 5. Однако этот код работает не верно. Можете ли вы без или с использованием консоли указать где ошибка и как нужно делать.

nums = [1,2,5,10,3,100,9,24]
for i in nums:
    if i < 5:
        nums.remove(i)
nums

>>>[2, 5, 10, 100, 9, 24]

Проверяет ли этот код на то, что элемент по своему значению менешь 5? В первой итерации 1 конечно меньше 5. Затем программа удаляет единицу, но в тоже время путаются индексы. На второй итерации она проверяет уже 5 а не 2. От этого и ошибка.

Для решения этой задачи можно использовать несколько вариантов.

Первый: создать пустой массив и дописывать в него, а именно:

nums = [1,2,5,10,3,100,9,24]
newnums = []
for i in nums:
    if i >= 5:
        newnums.append(i)
newnums

>>>[5, 10, 100, 9, 24]

Второй: Используя list comprehension

nums = [1,2,5,10,3,100,9,24]
newnums = [i for i in nums if i>=5]
newnums

>>>[5, 10, 100, 9, 24]

Нам нравится больше спосом с list comprehension. Но решать всегда вам.

admin

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago