Du endrer lista mens du løkker over den
Fjerner du elementer fra en liste mens `for` går gjennom den, glir de gjenværende ett hakk fram — og løkka hopper over dem. Resultatet er at omtrent annethvert element overlever. Bygg heller en ny liste, eller løkk over en kopi med `lista[:]`.
Eksempel
Du fjerner alle oddetall fra [1, 3, 5, 7] og sitter igjen med [3, 7].
Slik tenker du riktig om det
Tenk på løkka som en finger som peker på plass 0, 1, 2 … Fjerner du et element, glir alt bakover ett hakk, men fingeren går videre uansett. Rør aldri lista fingeren står i.
Slik ser det ut i kode
Slik gikk det galt
for tall in tallene:
if tall % 2 == 1:
tallene.remove(tall) # lista krymper under føttene Slik fikser du det
partall = [t for t in tallene if t % 2 == 0] # ny liste