Задать вопрос
@mQ2

В чем ошибка? Можите объяснить?

a = [int(i) for i in input().split()]
    
for i in range(len(a)):
    if a[i] > 0:
        a.pop(i)

for i in range(len(a)):
    print(a[i])


потом у меня выходить :
IndexError: list index out of range
  • Вопрос задан
  • 76 просмотров
Подписаться Простой Комментировать
Решения вопроса 1
Ты перебираешь циклом элементы списка, одновременно изменяя его!
Ведь при удалении элемента из списка перестраиваются индексы всего списка, происходит смещение, сдвиг элементов.
Это... жесть как неправильно!!!

Можно пойти от обратного, чтобы решить твою задачу:
a = [1, -2, 3, -4, 5, 6]
new_a = list()

for i in range(len(a)):
    if a[i] < 0:
        new_a.append(a[i])

print(new_a)
#[-2, -4]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы