das problem mit deiner for-schleife ist:
x geht range(len(test)) durch, also 0, 1, ..., len(test)
wenn Du also sagst:
dann versuchst DU erst 0, dann 1, dann 2 .... und zum schluss len(test) aus der Liste test zu löschen.
was Du meintest war wohl:
Code: Alles auswählen
test = [1,2]
for x in range(len(test)):
if test[x] == 0:
test.remove(test[x])
so geht der jeden Index der Liste durch, und lösche das Teil, wenn es 0 ist. Das wird aber probleme geben, weil "range(len(test))" wird nur einmal beim aufruf der schleife evaluiert, d.h. es wird nur einmal geschaut, wie lang test ist. und wenn du was löschst, ändert sich die Länge, folglich wird dein index x irgendwann größer sein, als test lang ist .... nciht schön
eine andere möglichkeit mit der schleife wäre so:
Code: Alles auswählen
test = [1,2}
for element in test:
if element == 0:
test.remove(element)
so nimmt die Variable "element" jeden wert aus test an, und löscht ihn, wenn er 0 ist. so hast Du auch keine indexvariable, die irgendwie über das ziel hinaus schiessen könnte.
wenn das Ziel ist, alle 0-en aus test zu löschen, würd hab ich das immer so gemacht(aber ich bin ein anfänger, gibt also sicherlich bessere und elegentere, und for allem "schnellere" Lösungen):
aber wie gesagt, ich bin anfänger, und ich hoffe ich hab hier keinen scheiss erzählt
hoffe auch, ich hab mich net vertippt,
liebe Grüße J.R.