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

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

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