Das Problem ist, dass list.remove
kehrt None
, also wenn Sie lst = lst.remove(i)
gesetzt ist, werden Sie lst
von None
, so bei der nächsten Iteration zu ersetzen, werden Sie remove
-None
, anzuwenden versuchen, was nicht möglich ist. Wenn Sie die Zuweisung entfernen, wird kein Fehler mehr angezeigt.
>>> for i in lst:
... lst.remove(i)
... print lst
...
[0, 0, 0, 1, 0, 0, 1]
[0, 0, 1, 0, 0, 1]
[0, 0, 0, 0, 1]
[0, 0, 0, 1]
Beachten Sie, dass, wenn Sie über eine Liste durchlaufen, während auf diese Weise zu entfernen, werden Sie effektiv jedes andere Element übersprungen, weshalb über die Schleife vorzeitig beenden erscheinen würde:
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8]
>>> for i in lst:
... lst.remove(i)
... print(lst)
...
[2, 3, 4, 5, 6, 7, 8]
[2, 4, 5, 6, 7, 8]
[2, 4, 6, 7, 8]
[2, 4, 6, 8]
Welche Fehler sind getitng Sie? – Acapulco