2017-11-10 2 views
-4

für y in range (len (List)) zu entfernen: print ("Länge", len (List)) print ("y", y) print ("Liste ", Liste [y]) if (Liste [y])% (dividing_prime) == 0: drucken (Liste [y]) Zähler = Zähler + 1 Liste [y] = 0 List.remove (0)Listenindex, während Indizes aus der Liste

+2

genannt zu tun, was diese Verbindung für ist? Wenn du Code hast, poste ihn hier als Text. –

+0

der Code wurde nicht veröffentlicht, wenn ich es eingegeben habe –

Antwort

0

Sie ändern eine Liste, während Sie darüber iterieren. Aus diesem Grund ändert sich die Größe der Liste, während Sie iterieren, da ein Index außerhalb der Grenzen liegt.

Sie können eine andere Liste aus den Elementen erstellen, die Sie nicht entfernen möchten.

Wenn Sie dieselbe Liste beibehalten und keine neue Kopie erstellen möchten, können Sie den Slice-Operator verwenden.

mylist[:] = [x for x in mylist if not remove(x)] 

Die itertools Bibliothek bietet auch ein Werkzeug, das filterfalse https://docs.python.org/3/library/itertools.html#itertools.filterfalse

Verwandte Themen