Python "List index out of range"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Daniel Schreiber
User
Beiträge: 21
Registriert: Sonntag 14. Januar 2018, 15:03

Hallo, ich schreibe gerade ein Spiel in Python-3.6.4 und möchte mehrere Gegner spawnen.
Ein Teil des Programms sieht folgendermaßen aus:
spieleranzahl=10
gegner=[]
for count in range(spieleranzahl):
gegner[count].append(turtle.Turtle())
gegner[count].color("red")
gegner[count].shape("circle")
gegner[count].penup()
gegner[count].setposition(random.randint(-300, 300), random.randint(-300, 300))
Jedoch werden die turtles nicht angezeigt und eine Fehlermeldung erscheint:
gegner[count].append(turtle.Turtle())
IndexError: list index out of range
Ich wäre sehr dankbar, wenn mir jemand weiterhelfen kann.
LG Daniel
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@Daniel Schreiber: Listen in Python haben eine bestimmte Länge, leere Listen eben die Länge 0. Das 1. Elemente existiert also nicht. Das `append` muß man daher auf die Liste anwenden. Am besten weist man das neue Objekt einer Variable zu und hängt diese Objekt erst am Ende der for-Schleife an die Liste an.
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Deine Liste hat keine Element. Konsequenterweise kannst du auch nicht auf irgendein Element zugreifen, auch nicht, um ihm einen neuen Wert zu verpassen.

Stattdessen musst du "liste.append(neues_element)" aufrufen.
Antworten