удаление элементов с массива больше заданого значения

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]
→ Ссылка