valor recorrer imprimir encontrar ejemplo diccionarios diccionario declaracion consultar comparar clave actualizar python python-2.7 dictionary iterable-unpacking

recorrer - imprimir clave diccionario python



Cómo extraer un par de clave-valor del diccionario en variables (7)

Agregue otro nivel, con una tupla (solo la coma):

(k, v), = d.items()

o con una lista:

[(k, v)] = d.items()

o elige el primer elemento:

k, v = d.items()[0]

Los dos primeros tienen la ventaja adicional de que arrojan una excepción si su diccionario tiene más de una clave, y ambos funcionan en Python 3, mientras que el último debería escribirse como k, v = next(iter(d.items())) para trabajar.

Manifestación:

>>> d = {''foo'': ''bar''} >>> (k, v), = d.items() >>> k, v (''foo'', ''bar'') >>> [(k, v)] = d.items() >>> k, v (''foo'', ''bar'') >>> k, v = d.items()[0] >>> k, v (''foo'', ''bar'') >>> k, v = next(iter(d.items())) # Python 2 & 3 compatible >>> k, v (''foo'', ''bar'')

Solo tengo un par de clave-valor en el diccionario. Quiero asignar la clave a una variable y su valor a otra variable. Lo he intentado de la siguiente manera, pero estoy obteniendo el mismo error.

>>> d ={"a":1} >>> d.items() [(''a'', 1)] >>> (k,v) = d.items() Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: need more than 1 value to unpack >>> (k, v) = list(d.items()) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: need more than 1 value to unpack

Sé que podemos extraer la clave y el valor uno por uno, o por bucle y iteritems (), pero ¿no hay una manera simple de que podamos asignar ambos en una sola declaración?


Esto es mejor si tiene muchos elementos en el diccionario, ya que en realidad no crea una lista, sino que produce solo un par de clave-valor.

k, v = next(d.iteritems())

Por supuesto, si tiene más de un elemento en el diccionario, no hay forma de saber cuál obtendrá.


Tienes una lista Debe indexar la lista para acceder a los elementos.

(k,v) = d.items()[0]


items() devuelve una lista de tuplas así:

(k,v) = d.items()[0]


En Python 3:

Respuesta corta:

[(k, v)] = d.items()

o:

(k, v) = list(d.items())[0]

o:

(k, v), = d.items()

Respuesta larga:

d.items (), básicamente (pero no en realidad) le da una lista con una tupla, que tiene 2 valores, que se verá así cuando se imprima:

dict_items([(''a'', 1)])

Puede convertirlo a la lista real envolviendo con list (), lo que dará como resultado este valor:

[(''a'', 1)]


d ={"a":1}

tu puedes hacer

k, v = d.keys()[0], d.values()[0]

d.keys () devolverá realmente la lista de todas las claves y la lista de devolución de todos los valores, ya que tiene una sola clave: par de valores en d accederá al primer elemento en la lista de claves y valores


>>> d = {"a":1} >>> [(k, v)] = d.items() >>> k ''a'' >>> v 1

O usando next , iter :

>>> k, v = next(iter(d.items())) >>> k ''a'' >>> v 1 >>>