Странный результат при удалении элемента из списка при его переборе в PythonPython

Программы на Python
Ответить
Anonymous
 Странный результат при удалении элемента из списка при его переборе в Python

Сообщение Anonymous »

У меня есть этот код:

Код: Выделить всё

numbers = list(range(1, 50))

for i in numbers:
if i < 20:
numbers.remove(i)

print(numbers)
Этот код должен пройти по всем элементам списка и удалить те элементы, число которых меньше 20.
Но результат, который я получаю:

Код: Выделить всё

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
Как видите, из кода удалены все четные числа меньше 20, но остались нечетные. Похоже, я делаю что-то не так с удалением.

Подробнее здесь: https://stackoverflow.com/questions/626 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»