Задать вопрос
@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]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
03 янв. 2025, в 10:40
2000 руб./за проект
03 янв. 2025, в 10:35
45000 руб./за проект
02 янв. 2025, в 20:05
100000 руб./за проект