удаление элементов с массива больше заданого значения
nums=[1,2,55,2,6,969,44,65,21,45,44,42,10,72,12,35,2,0,512,3,410,30]
for i in nums:
if i>30:
nums.remove(i)
print(nums)
Задача кода удалить все элементы,которые больше 30 и вывести готовый список на экран. Но вместо того, чтобы вернуть [1,2,2,6,21,10,12,2,0,3] она возвращает [1,2,2,6,44,21,44,10,12,2,0,3,30]
Помогите понять в чём ошибка
Ответы (2 шт):
Автор решения: AlTheOne
→ Ссылка
nums = [1,2,55,2,6,969,44,65,21,45,44,42,10,72,12,35,2,0,512,3,410,30]
print(list(filter(lambda x: x <= 30, nums)))
Автор решения: Zhihar
→ Ссылка
не удаляйте из списка элементы когда двигаетесь направо по этому списку!!!
а решение вашей задачи:
nums = [i for i in nums if i <= 30]