IndexError: list index out of range
Verfasst: Montag 23. Oktober 2023, 09:12
Hallo,
also ich habe folgendes Problem. Ich möchte aus einer Textdatei Daten auslesen. Diese speichere ich dann in einer zweidimensionalen Liste. Danach suche ich in der Liste nach speziellen Schlüsselwörter, um bestimmte Werte, die nach dem Schlüsselwörtern kommen, in einer Variable zu speichern.
So sieht mein Code dafür aus:
Jedoch bekomme ich an der Stelle "if data[v] == "Kompletter":" für das v die Fehlermeldung "IndexError: list index out of range". Ich verstehe allerdings nicht wirklich warum. Wenn ich das Kompletter beispielsweise zu "Steuergerät" ändere, dann bekomme ich keine Fehlermeldung. Ich benutze diesen Code auch in meinem Programm an einer anderer Stelle und da funktioniert er ohne Fehlermeldung.
Ein Ausschnitt der Liste sieht so aus
Die Liste enthält dementsprechend auch leere Elemente. Aber das hat im anderen Teil des Programms oder wenn ich das Schlüsselwort zu "Steuergerät" ändere, dennoch mit dem obigen Code funktioniert.
Ich weiß nicht wirklich, wie ich das fixen kann.
Ich habe auch anfangs diesen Code probiert:
Jedoch kann ich damit keine Daten einlesen, weil mir die Positionen fehlen, an die die Schlüsselwörter gefunden wurden. Zumindest komme ich nicht darauf, wie man damit Werte einlesen kann.
Ich weiß also nicht wirklich, wie ich dieses Problem beheben soll.
also ich habe folgendes Problem. Ich möchte aus einer Textdatei Daten auslesen. Diese speichere ich dann in einer zweidimensionalen Liste. Danach suche ich in der Liste nach speziellen Schlüsselwörter, um bestimmte Werte, die nach dem Schlüsselwörtern kommen, in einer Variable zu speichern.
So sieht mein Code dafür aus:
Code: Alles auswählen
data: list[list[str]] = [line.split() for line in fh]
rangeOne = len(data) - 1
for i in range(rangeOne):
rangeTwo = len(data[i]) - 1
if rangeTwo == -1:
rangeTwo = 0
for v in range(rangeTwo):
if data[i][v] == "Kompletter":
start = True
komplett = data[i][v+1]
Ein Ausschnitt der Liste sieht so aus
Code: Alles auswählen
[['Kompletter', 'Scan'], ['Steuergeräte:', '34'], [] ]
Ich weiß nicht wirklich, wie ich das fixen kann.
Ich habe auch anfangs diesen Code probiert:
Code: Alles auswählen
for i in data:
for v in row:
if v == "Kompletter":
return True
Ich weiß also nicht wirklich, wie ich dieses Problem beheben soll.
