Chcę napisać program, który z listy usunie elementy ujemne (mój pierwszy program w pythonie). Utworzyłem coś takiego:
lista =[1,6,7,8,9,12,34,-45,-89,32,45,-9,-6,-2,-45,-56,-32,6,7,8,9,33,44,55,66,77,-6,5]
#lista zawierające liczby dodatnie i ujemne
for liczba in range(len(lista)):
if lista[liczba]<0:
del lista[liczba]
for wynik in lista:
print(wynik)
ale pojawia się błąd, ponieważ wyrzucając elementy, skracam zakres, więc pętla for wychodzi poza niego. Jak można to poprawić?
Jeśli chce się iterować po tablicy i usuwać z niej elementy w trakcie, to warto to zrobić “od tyłu” - nie trzeba modyfikować indeksera w trakcie działania programu. Dodatkowo, listy w Pythonie indeksowane są od zera, więc maksymalny indeks to len(lista)-1 .