@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
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
Ты перебираешь циклом элементы списка, одновременно изменяя его!
Ведь при удалении элемента из списка перестраиваются индексы всего списка, происходит смещение, сдвиг элементов.
Это... жесть как неправильно!!!

Можно пойти от обратного, чтобы решить твою задачу:
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]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы