Задать вопрос
@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
  • Вопрос задан
  • 79 просмотров
Подписаться Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 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]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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