Python-Listen-Indizes müssen ganze Zahlen oder Slices sein, nicht str

String-Indizes mussen ganze Zahlen oder Slices sein, keine Strings? Was bedeutet dieser Fehler? Dies ist ein TypeError, der uns mitteilt, dass wir versuchen, eine Operation fur einen Wert auszufuhren, dessen Typ nicht mit der Operation kompatibel ist. Was ist die Lösung?

In diesem Leitfaden beantworten wir all diese Fragen. Wir besprechen, was diesen Fehler in Python verursacht und warum er ausgelöst wird. Wir werden ein Beispielszenario durchgehen, um Ihnen bei der Lösung zu helfen. Lasst uns ohne weiteres beginnen!

Das Problem: typeerror: Listenindizes mussen ganze Zahlen oder Slices sein, nicht str

Houston, wir haben einen TypeError:

Dieser Fehler wird ausgelöst wenn Sie versuchen, mithilfe eines Zeichenfolgenwerts auf einen Wert in einer Liste zuzugreifen.

Elemente in Listen werden mit Zahlen indiziert. Betrachten Sie die folgende Liste:

1 2345
S tring

Um auf Werte in diesem String zuzugreifen, können wir Index-Slicing verwenden. Dies geschieht, wenn Sie einen String gefolgt von einem Indexwert aufrufen, um das Zeichen an dieser Position abzurufen:

Dieser Code gibt zuruck: S. Unser Code ruft das Zeichen an der Indexposition 0 in unserer Liste ab.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Wenn Sie versuchen, Zugang zu einem list einen Buchstaben wie "S‚" verwendet, tritt ein Fehler auf.

Ein Beispielszenario

Der Fehler "typeerror: list indexes must be integers or Slices, not str‚" wird h√§ufig ausgel√∂st, wenn Sie versuchen, auf ein Element in einer Liste von JSON-Objekten zuzugreifen, als ob es eine Liste w√§re.

Bedenken Sie der folgende Codeschnipsel:

Dieser Codeausschnitt ermittelt das Alter eines bestimmten Schulers in einer Klasse. Als erstes haben wir eine Liste von Studenten erstellt. Diese Liste speichert jeden Schuler als JSON-Objekt.

Als Nächstes bitten wir den Benutzer, den Namen des Schulers einzugeben, dessen Alter er finden möchte. Unser Programm durchläuft dann jeden Schuler in der Liste mit einem for loop, um den Schuler zu finden, dessen Name mit dem von uns angegebenen ubereinstimmt.

Wenn dieser bestimmte Name gefunden wird, das Alter des Schulers wird an die Konsole ausgegeben. Andernfalls passiert nichts.

Versuchen wir, unseren Code auszufuhren:

Oh nein. Es ist ein TypeError!

Die Lösung

Sie k√∂nnen den Fehler "typeerror: Listenindizes mussen ganze Zahlen oder Slices sein, nicht str‚", indem Sie sicherstellen, dass Sie auf Elemente in einer Liste mit Indexnummern und nicht mit Strings zugreifen.

Das Problem in unserem Code besteht darin, dass wir versuchen, auf "Name‚" in unserer Schulerliste zuzugreifen:

Dies entspricht keinem Wert, da unsere Liste mehrere JSON-Objekte enthält. Um dieses Problem zu lösen, verwenden wir eine range()-Anweisung, um unsere Schulerliste zu durchlaufen. Dann greifen wir auf jeden Schuler uber seine Indexnummer zu:

Zun√§chst haben wir eine Range-Anweisung verwendet. Dies erm√∂glicht es uns, uber jeden Schuler in unserer Liste zu iterieren. Wir haben jede Instanz von "students["key_name‚"]‚" ersetzt. mit "Studenten[n]["Schlusselname‚"]‚". Dadurch k√∂nnen wir auf jeden Wert in der Liste zugreifen.

Lassen Sie unseren Code ausfuhren und sehen, was passiert:

Unser Code hat die . erfolgreich gefunden Alter von Lisa Simpson.

Wir greifen auf jeden Wert in der "Studenten‚"-Liste mit seiner Indexnummer anstelle einer Zeichenfolge zu. Problem behoben!



Schlussfolgerung

Der Fehler "typeerror: Listenindizes mussen ganze Zahlen sein oder Slices, nicht str‚" wird ausgel√∂st, wenn Sie versuchen, auf eine Liste mit Zeichenfolgenwerten anstelle einer Ganzzahl zuzugreifen. Um dieses Problem zu l√∂sen, stellen Sie sicher, dass Sie mit einer Indexnummer auf eine Liste zugreifen.

A Ein h√§ufiges Szenario, in dem dieser Fehler auftritt, ist, wenn Sie uber eine Liste iterieren und Objekte in der Liste vergleichen. Um diesen Fehler zu beheben, haben wir eine range()-Anweisung verwendet Damit wir auf jeden Wert in "students‚" individuell.

Jetzt sind Sie bereit, diesen Fehler wie ein Python-Experte zu beheben!

"Karma-Karriere trat in mein Leben ein, als ich es am dringendsten brauchte, und half mir schnell, mit zu harmonieren ein Bootcamp. Zwei Monate nach meinem Abschluss habe ich meinen Traumjob gefunden, der meinen Werten und Lebenszielen entspricht!"

Venus, Software Engineer bei Rockbot