¿Cómo iterar dict
con enumerate
de modo que pueda desempaquetar el índice, la clave y el valor en el momento de la iteración?
Algo como:
for i, (k, v) in enumerate(mydict): # some stuff
Quiero iterar a través de las claves y valores en un diccionario llamado mydict
y contarlos, para saber cuándo estoy en el último.
En lugar de usar mydict
, debería usar mydict.items()
con enumerate
como:
for i, (k, v) in enumerate(mydict.items()): # your stuff
Ejemplo de muestra:
mydict = {1: 'a', 2: 'b'} for i, (k, v) in enumerate(mydict.items()): print("index: {}, key: {}, value: {}".format(i, k, v)) # which will print: # ----------------- # index: 0, key: 1, value: a # index: 1, key: 2, value: b
Explicación:
enumerate()
devuelve un objeto iterador que contiene tuplas en el formato: [(index, list_element), ...]
dict.items()
devuelve un objeto iterador (en Python 3.x. Devuelve una list
en Python 2.7) en el formato: [(key, value), ...]
enumerate(dict.items())
devolverá un objeto iterador que contiene tuplas en el formato: [(index, (key, value)), ...]