Lösung ValueError: Too Many Values to Unpack(Expected 2) in Python Dictionarys

Olorunfemi Akinlua 21 Juni 2023
  1. Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary Keys
  2. Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary Values
  3. Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary items()
Lösung ValueError: Too Many Values to Unpack(Expected 2) in Python Dictionarys

Wenn wir uns mit Wörterbüchern oder Listen in Python beschäftigen, ist die Wahrscheinlichkeit hoch, dass ValueError passiert. Dies liegt häufig daran, dass beim Zugriff auf einen Wert der falsche Index oder die falsche Eigenschaft übergeben wird.

Bei Wörterbüchern müssen beim Durchlaufen der Werte die entsprechenden Methoden zum Durchlaufen von Wörterbüchern verstanden werden, um die Fehlermeldungen ValueError oder zu viele Werte zum Entpacken (erwartet 2) zu vermeiden.

In diesem Artikel werden drei Methoden zum Durchlaufen oder Zugreifen auf Wörterbucheigenschaften und -werte erörtert und der Fehler ValueError: too many values to unpack (expected 2) (Wertfehler: zu viele Werte zum Entpacken (erwartet 2)) verhindert.

Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary Keys

Bevor wir die Fehlermeldung lösen, lassen Sie uns das Szenario replizieren, das den Fehler ValueError: too many values to unpack (expected 2) verursacht.

Wenn wir ein Wörterbuch haben und die Schlüssel und Werte durchlaufen möchten und planen, die Schlüssel und Werte auszudrucken. Einige Neulinge könnten versucht sein, das folgende Code-Snippet auszuprobieren:

dictionary = {"color": "blue", "shape": "square", "volume": 40}

for key, values in dictionary:
    print("Key: " + key)
    print("Value: " + str(values))
    print("===")

Die Ausgabe des Codes:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\dict.py", line 8, in <module>
    for key, values in dictionary:
ValueError: too many values to unpack (expected 2)

Die Fehlermeldung ValueError: too many values to unpack (expected 2) wird in Ihrem Ausgabebereich angezeigt, und um dies zu lösen, müssen wir verstehen, dass die for/in-Schleife durch Iteration über iterable (list, tuple , einstellen usw.).

Im Fall eines Wörterbuchs sind jedoch nur die Schlüssel ohne Methode direkt iterierbar. Damit der Code funktioniert, müssen wir daher nur auf eine Variable zugreifen, um auf den Schlüssel zuzugreifen, key, und nicht auf zwei, um auf den Schlüssel und den Wert zuzugreifen.

Was uns nun bleibt, ist der Zugriff auf den Wert. Um auf den Wert zuzugreifen, können wir die einzelne Variable Schlüssel in der Notation mit eckigen Klammern Wörterbuch[Schlüssel] verwenden.

dictionary = {"color": "blue", "shape": "square", "volume": 40}

for key in dictionary:
    value = dictionary[key]
    print("Key: " + key)
    print("Value: " + str(value))
    print("===")

Die Ausgabe des Codes:

Key: color
Value: blue
===
Key: shape
Value: square
===
Key: volume
Value: 40
===

Mit der einfachen Codeänderung haben wir den Fehler ValueError: too many values to unpack (expected 2) beseitigt und ohne Probleme über das Dictionary-Objekt innerhalb von Python iteriert.

Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary Values

Unter Verwendung des gleichen Szenarios können wir mit der Methode values(), die mit dem Dictionary-Objekt geliefert wird, direkt auf die Werte zugreifen. Damit haben wir Zugriff auf die Werte anstelle der Schlüssel.

Daher können wir für dasselbe Szenario nur auf die Werte zugreifen. Dies ist in Fällen nützlich, in denen nur die Werte nützlich sind.

dictionary = {"color": "blue", "shape": "square", "volume": 40}

for value in dictionary.values():
    print("Value: " + str(value))
    print("===")

Die Ausgabe des Codes:

Value: blue
===
Value: square
===
Value: 40
===

Lösen Sie ValueError: too many values to entpack (expected 2) Using Dictionary items()

Mit dem ersten Codeschnipsel, der den Fehler ValueError: too many values to unpack (expected 2) lieferte, können wir die beiden Variablen mit Hilfe einer Dictionary-Methode items() fehlerfrei pflegen.

Die items() Methode gibt, wenn wir sie auf ein Dictionary anwenden, ein Schlüssel-Wert-Paar (View-Objekt) zurück, das in einem Tupel gespeichert ist. Mit Hilfe der Destrukturierung können wir die beiden Werte in Variablen (Schlüssel und Wert) zerlegen und sie in unserem for-Schleife-Codeblock verwenden, um getrennt auf die Schlüssel und Werte zuzugreifen.

dictionary = {"color": "blue", "shape": "square", "volume": 40}

for key, value in dictionary.items():
    print("Key: " + str(key))
    print("Value: " + str(value))
    print("===")

Die Ausgabe des Codes:

Key: color
Value: blue
===
Key: shape
Value: square
===
Key: volume
Value: 40
===

Um besser zu verstehen, was dictionary.items() ausgibt, ist der folgende Code hilfreich.

print(dictionary.items())

Ausgang:

dict_items([('color', 'blue'), ('shape', 'square'), ('volume', 40)])

Die Ausgabe ist eine dict_items-Liste mit Tupeln, über die wir iterieren können.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Python Error