Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python почему не работает код, если все правильно работает

Сева Ученик (20), на голосовании 10 месяцев назад
Реализуйте числовое сито (фильтр). Прочитайте из терминала список S в виде строки с числами, разделенными пробелом. Напечатайте на экран список из элементов списка S, строго меньших 10.
мой код:


a = list(map(int, input().split()))
for i in a:
if i >= 10:
a.remove(i)
print(a)

Яндекс контест пишет, что если он введет 1 2 3 345 12 то выведется 1, 2, 3, 12, 4, 5, 6, 345 , но на самом деле во всех компилерах выводится 1 2 3
Голосование за лучший ответ
Sergio 2.1 Оракул (67452) 11 месяцев назад
 a = list(map(int, input().split())) 
b = [i for i in a if i < 10]
print(b)
СеваУченик (20) 11 месяцев назад
Спасибо за ответ, но можно ли чуть более понятный код? Просто я учусь, а map мы еще не проходили.
Оракул Оракул (62095) Артём Гюлев, у вас же в коде есть map, как не проходили-то)
Оракул Оракул (62095) 11 месяцев назад
Обходите список в обратном порядке
Удаляя элементы в прямом порядке вы не проходите по всему списку, появляются пропуски
Алекс Куха Высший разум (461768) 11 месяцев назад
Неправда Ваша
СеваУченик (20) 11 месяцев назад
так задача была в том, что пользователь может свой составить список, но спасибо за ответ.
Алекс Куха Высший разум (461768) Артём Гюлев, ввод списка был уже в 1й строке и вполне корректен. Причём тут яндекс и "всех компилерах выводится". Показал, что не во всех. Более того никакого другого Пайтон компилятора нет.
Похожие вопросы