Wie löse ich den Error-code "TypeError: list indices must be integers or slices, not list" in Python?

3 Antworten

for index1 in speicher:
     for index2 in index1:
          print(speicher[index1][index2])

Bin jetzt in python nicht 100% drin, aber ich glaube du erstellst hier keine for Schleife, sondern eine foreach Schleife. Das würde bedeuten, dass index1 und index2 keine Zahlen sind, sondern die einzelnen Array Items. Du kannst in den [] Klammern keine Arrays angeben, sondern nur Zahlen. Du brauchst also eine for Schleife, welche mit Zahlen zählt von 0 - Ende der Liste


DennisScher 
Beitragsersteller
 28.01.2022, 11:33

Ja, Danke für die Hilfe :) Habe den Fehler gerade selbst gefunden xdddd

0
Von Experte skiddy bestätigt

Deine äußere for-Schleife gibt dir die Listen zurück, die innere for-Schleife die einzelnen Strings.

Beides kannst du nicht als Index nutzen, um auf die einzelnen Felder zuzugreifen.

Entweder sagst du einfach nur "print(index2)" oder du schreibst die Schleife anders:

for index1 in range(len(speicher)):
     for index2 in range(len(Speicher[0])):
          print(speicher[index1][index2])

Alternativ kennst du die Größe des Feldes schon. Dann kannst du einfach direkt sagen:

for index1 in range(3):
  for index2 in range(3):
    print( ... )
for index1 in speicher:
     for index2 in index1:
          print(index2)