Python-Wertfehler
Python-Funktionen und -Methoden
Michael Zippo
31.10.2021
Python packt Taschen nicht gut aus. Wenn der Fehler "valueerror: too many values ​​to entpack (erwartet 2)" angezeigt wird, bedeutet dies nicht, dass Python gerade einen Koffer auspackt. Dies bedeutet, dass Sie versuchen, auf zu viele Werte von einem Iterator zuzugreifen.
In diesem Handbuch sprechen wir daruber, was dieser Fehler bedeutet und warum er ausgelöst wird. Wir gehen ein Beispiel-Code-Snippet mit diesem Fehler durch, damit Sie lernen können, wie man es löst.
Das Problem: valueerror: zu viele Werte zum Entpacken (erwartet 2)
Ein ValueError ist ausgelöst, wenn Sie versuchen, auf Informationen von einem nicht vorhandenen Wert zuzugreifen. Werte können ein beliebiges Objekt sein, beispielsweise eine Liste, eine Zeichenfolge oder ein Wörterbuch.
Schauen wir uns an unsere Fehlermeldung:
In Python ist "Entpacken‚" bezieht sich auf das Abrufen von Elementen aus einem Wert. Das Abrufen von Elementen aus einer Liste wird beispielsweise als "Auspacken‚" diese Liste. Sie zeigen den Inhalt an und greifen einzeln auf jedes Element zu.
Die obige Fehlermeldung sagt uns, dass wir versuchen, zu viele Werte aus einem Wert zu entpacken.
Dieser Fehler wird h√§ufig durch zwei Fehler verursacht:
Wir betrachten jedes dieser Szenarien einzeln.
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.
Lassen Sie uns versuchen, es zu wiederholen uber ein Wörterbuch. Das Wörterbuch, uber das wir iterieren, speichert Informationen uber ein Element im Periodensystem. Zuerst definieren wir unser Wörterbuch:
Unser Wörterbuch hat drei Schlussel und drei Werte. Die Tasten befinden sich links von den Doppelpunkten; die Werte stehen rechts von den Doppelpunkten. Wir wollen sowohl die Schlussel als auch die Werte an die Konsole ausgeben. Dazu verwenden wir eine for-Schleife:
In dieser Schleife entpacken wir "Wasserstoff‚" in zwei Werte: Schlussel und Wert. Wir wollen "Schlussel‚" den Schlusseln in unserem W√∂rterbuch entsprechen und "Wert‚" den Werten entsprechen.
Lassen Sie unseren Code ausfuhren und sehen, was passiert:
Unser Code gibt einen Fehler zuruck.
Dies liegt daran, dass jedes Element im "Wasserstoff‚"-W√∂rterbuch ein Wert ist. Schlussel und Werte sind keine zwei separaten Werte im W√∂rterbuch.
Wir lösen diesen Fehler mit einer Methode namens items(). Diese Methode analysiert ein Wörterbuch und gibt Schlussel zuruck und Werte, die als Tupel gespeichert sind. Fugen Sie unserem Code diese Methode hinzu:
Jetzt versuchen Sie noch einmal, unseren Code auszufuhren:
Wir haben die Methode items()
hinzugefugt bis zum Ende von "Wasserstoff‚". Dies gibt unser W√∂rterbuch mit Schlussel-Wert-Paaren zuruck, die als Tupel gespeichert sind. Wir k√∂nnen dies sehen, indem wir den Inhalt von hydrogen.items()
in die Konsole ausgeben:
Unser Code gibt zuruck:
Jeder Schlussel und Wert werden in einem eigenen Tupel gespeichert.
Ein Hinweis zu Python 2.x
In Python 2.x, Sie verwenden iteritems()
anstelle von items()
. Dies erreicht das gleiche Ergebnis wie im vorherigen Beispiel. Auf die Methode items()
kann in Python 2.x weiterhin zugegriffen werden.
Oben wir Verwenden Sie iteritems()
anstelle von items()
. Lassen Sie uns unseren Code ausfuhren:
Unsere Schlussel und Werte werden aus dem "Wasserstoff‚" W√∂rterbuch. Dadurch k√∂nnen wir jeden Schlussel und Wert einzeln auf der Konsole ausgeben.
Python 2.x wird langsam veraltet. Es ist am besten, modernere Methoden zu verwenden, wenn verfugbar. Dies bedeutet, dass items()
im Allgemeinen iteritems()
vorgezogen wird.
Beispiel: Werte in eine Variable entpacken
Wenn Sie eine Liste in eine Variable entpacken, muss die Anzahl der Variablen, in die Sie die Listenelemente entpacken, der Anzahl der Elemente in der Liste entsprechen. Andernfalls wird ein Fehler zuruckgegeben.
Wir packen diese Werte in ihre eigenen Variablen. Jeder dieser Werte entspricht den folgenden Donuts, die vom Laden verkauft werden:
"Karma-Karma trat in mein Leben ein, als ich es am dringendsten brauchte, und half mir schnell dabei, zu passen mit einem Bootcamp. Zwei Monate nach meinem Abschluss habe ich meinen Traumjob gefunden, der meinen Werten und Lebenszielen entspricht!"
Wir entpacken unsere Liste in vier Variablen. Dadurch können wir jeden Preis in einer eigenen Variablen speichern. Entpacken wir unsere Liste:
Dieser Code entpackt unsere Liste in vier Variablen. Jede Variable entspricht einem anderen Donut. Wir geben den Wert von "blueberry‚" an die Konsole aus, um zu uberprufen, ob unser Code funktioniert. Fuhren Sie unseren Code aus und sehen Sie, was passiert:
Wir versuchen vier Werte zu entpacken, unsere Liste enthält funf Werte. Python weiß nicht, welche Werte unseren Variablen zugewiesen werden sollen, da wir nur vier Werte entpacken. Dies fuhrt zu einem Fehler.
Der letzte Wert in unserer Liste ist der Preis des Schokoladendonuts. Wir lösen unseren Fehler, indem wir eine andere Variable angeben, um die Liste zu entpacken:
Unser Code gibt zuruck: 2.1. Unser Code entpackt die Werte in unserer Liste erfolgreich.
Der "Wertfehler: zu viele Werte zum Entpacken (erwartet 2)‚" Fehler tritt auf, wenn Sie nicht alle Elemente in einer Liste entpacken.
Dieser Fehler wird häufig durch den Versuch verursacht, die Elemente in einem Wörterbuch zu durchlaufen. Um dieses Problem zu lösen, verwenden Sie die Methode items()
, um uber ein Wörterbuch zu iterieren.