0c0e8d56 605a 4dda 93ba b85cc4c49c9a
Имеется кусок кода, который должен удалять все элементы из списка, которые меньше 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. Но решать всегда вам.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…