2017-05-31 5 views
-5
for i in range(len(text_list)): 
    for j in range(len(text_list[i])): 
     if text_list[i][j] in ban: 
      text_list[i]=text_list[i][:j] 

In der dritten Zeile tritt ein Fehler auf. Ich weiß nicht, was ich tun soll. Ich denke, es nicht ein Fehler sein sollte ..python3.x: Index außerhalb des Bereichs

+0

Was sind Ihre Variablen? Was genau ist 'text_list'? Was ist "Verbot"? – TheDarkKnight

+0

ban = ['', '\ t', '\ n', '.', ',', ';', ':', '-', '-', '-', '[', ' ] ',' {','} ',' (',') ',' '', '' ', ' '', '!', '?', '/', '@', '# ',' $ ','% ','^',' & ',] –

+2

Bitte bearbeiten Sie Ihre Frage, um ein minimales, vollständiges und überprüfbares Beispiel zu geben: https://stackoverflow.com/help/mcve –

Antwort

1

Diese Linie ändert sich die Länge von text_list[i]:

text_list[i]=text_list[i][:j] 

So ist die nächste Iteration der for j ... ungültig ist. Vielleicht nach der Änderung text_list, sollten Sie break auf die nächsthöhere for i ... Schleife.

1

Sie ändern die Liste während der Iteration. Wenn Ihre if-Bedingung erfolgreich ist, werden Sie den Rest dieser Zeile abschneiden. In der nächsten Iteration laufen Sie also auf einen Fehler außerhalb der Grenzen. Dies ist im Prinzip das Gleiche wie beim Schreiben:

Verwandte Themen