Resolver ValueError: demasiados valores para desempaquetar(esperado 2) en los diccionarios de Python
-
Resuelva
ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando las teclas del diccionario -
Resolver
ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando valores de diccionario -
Resuelva
ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando el diccionarioelementos ()
Cuando tratamos con diccionarios o listas en Python, existe una alta probabilidad de que suceda ValueError
. A menudo, esto se debe a que se pasa el índice o la propiedad incorrectos al acceder a un valor.
Con los diccionarios, al recorrer los valores, es necesario comprender los métodos apropiados para recorrer los diccionarios a fin de evitar los mensajes de error ValueError
o demasiados valores para desempaquetar (se esperaban 2)
.
Este artículo discutirá tres métodos para atravesar o acceder a las propiedades y valores del diccionario y evitar el error ValueError: demasiados valores para desempaquetar (se esperaban 2)
.
Resuelva ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando las teclas del diccionario
Antes de resolver el mensaje de error, repliquemos el escenario que causa el error ValueError: demasiados valores para desempaquetar (se esperaban 2)
.
Si tenemos un diccionario y queremos recorrer las claves y los valores y planeamos imprimir las claves y los valores. Algunos novatos pueden tener la tentación de probar el fragmento de código a continuación:
dictionary = {"color": "blue", "shape": "square", "volume": 40}
for key, values in dictionary:
print("Key: " + key)
print("Value: " + str(values))
print("===")
La salida del código:
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)
El mensaje de error, ValueError: demasiados valores para desempaquetar (se esperaban 2)
se muestra dentro de su área de salida, y para resolver esto, debemos entender que el bucle for/in
funciona iterando sobre iterable (lista, tupla , conjunto, etc).
Sin embargo, en el caso de un diccionario, solo las claves son iterables directamente, sin ningún método. Por lo tanto, para que el código funcione, necesitamos acceder solo a una variable para acceder a la clave, clave
, y no a dos para acceder a la clave y el valor.
Ahora, lo que nos queda es cómo acceder al valor. Para acceder al valor, podemos usar la variable única, clave
, dentro de la notación de corchetes, diccionario[clave]
.
dictionary = {"color": "blue", "shape": "square", "volume": 40}
for key in dictionary:
value = dictionary[key]
print("Key: " + key)
print("Value: " + str(value))
print("===")
La salida del código:
Key: color
Value: blue
===
Key: shape
Value: square
===
Key: volume
Value: 40
===
Con el simple cambio de código, eliminamos el error ValueError: demasiados valores para desempaquetar (se esperaban 2)
e iteramos sobre el objeto del diccionario dentro de Python sin ningún problema.
Resolver ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando valores de diccionario
Usando el mismo escenario, podemos acceder a los valores directamente usando el método values()
que viene con el objeto del diccionario. Con esto, tenemos acceso a los valores en lugar de las claves.
Por lo tanto, para el mismo escenario, solo podemos acceder a los valores. Es útil en casos donde solo los valores son útiles.
dictionary = {"color": "blue", "shape": "square", "volume": 40}
for value in dictionary.values():
print("Value: " + str(value))
print("===")
La salida del código:
Value: blue
===
Value: square
===
Value: 40
===
Resuelva ValueError: demasiados valores para desempaquetar (se esperaban 2)
usando el diccionario elementos ()
Con el primer fragmento de código que dio el error ValueError: demasiados valores para desempaquetar (esperado 2)
, podemos mantener las dos variables con la ayuda de un método de diccionario, elementos ()
sin ningún error.
El método items()
, cuando lo aplicamos a un diccionario, devuelve un par clave-valor (objeto de vista) que se almacena dentro de una tupla. Con la ayuda de la desestructuración, podemos analizar los dos valores en variables (clave
y valor
) y usarlos dentro de nuestro bloque de código de bucle for
para acceder a las claves y valores por separado.
dictionary = {"color": "blue", "shape": "square", "volume": 40}
for key, value in dictionary.items():
print("Key: " + str(key))
print("Value: " + str(value))
print("===")
La salida del código:
Key: color
Value: blue
===
Key: shape
Value: square
===
Key: volume
Value: 40
===
Para comprender mejor lo que genera dictionary.items()
, el siguiente código es útil.
print(dictionary.items())
Producción :
dict_items([('color', 'blue'), ('shape', 'square'), ('volume', 40)])
La salida es una lista dict_items
que contiene tuplas sobre las que podemos iterar.
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.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python