Проблема с выводом в списке

Не могу понять в чем проблема введите сюда описание изображения

n=[i for i in input().split()]
need,howmany,lst=input(),0,[]
for i in n:
    if i==need:
        lst.append(n.index(i)+howmany)
        howmany+=1
        n.remove(i)
print(*lst)

Ответы (1 шт):

Автор решения: Mike

Проблема вашего кода в следующем: когда вы удаляете элемент и переходите к следующему, получается так что вы пропускаете следующий. Вот был у вас массив [1, 2, 2, 3], в котором вы удаляете 2. Вы идете по массиву, встречаете первую двойку, удаляете ее (у нее индекс 1), потом итератор сдвигается и теперь вы смотрите на элемент с индексом 2, то есть тройку в нашем случае (массив [1, 2, 3]). И в результате ваша программа вместо правильного ответа: 1, 2; выводит только 1.

→ Ссылка