Ich mache eine Übung, wo eine Funktion eine Liste und eine ganze Zahl n
nimmt und löscht jedes Element, wenn sein Index i
erfüllt (i+1)%n==0
. Hier ist, was ich bin gekommen, sich mit:Löschen Sie jedes Element, dessen Index die Bedingung erfüllt; List Assignment Index außerhalb des Bereichs
def f(lst, n):
for i in range(len(lst)):
if (i+1)%n==0:
del lst[i]
aber es gibt mir diese Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pop.py", line 4, in f
del lst[i]
IndexError: list assignment index out of range
Der Indexzeiger i
nicht in der Lage sein scheint außer Reichweite zu laufen? Was verursacht das?
Bitte geben Sie Beispieldaten für Klarheit und Tests an. –
Mögliches Duplikat von [Elemente während der Iteration aus einer Liste entfernen] (https://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating) – abccd
Denken Sie darüber nach, was passiert, wenn Sie Elemente entfernen aus einer Liste. Die Länge dieser Liste ändert sich. –