¿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 stuffEjemplo 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: bExplicació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)), ...]