J'ai un dictionnaire appelé regionspointcount
qui contient les noms de région (str
) en tant que clés et le nombre d'un type d'entité dans cette région (int
) en tant que valeurs, par exemple {'Highland':21}
.
Je veux itérer la clé et la valeur du dictionnaire en énumérant. Y a-t-il un moyen de faire quelque chose comme:
for i, k, v in enumerate(regionspointcount.items()):
ou dois-je recourir à une variable de nombre?
Avec un dictionnaire d
:
d
# {'A': 1, 'B': 2, 'C': 3, 'D': 4}
Vous pouvez utiliser un tuple pour décompresser les paires clé-valeur dans l'en-tête de la boucle for
.
for i, (k, v) in enumerate(d.items()):
print(i, k, v)
# 0 A 1
# 1 B 2
# 2 C 3
# 3 D 4
Pour comprendre pourquoi les parenthèses supplémentaires sont nécessaires, examinez le résultat brut de enumerate
:
list(enumerate(d.items()))
# [(0, ('A', 1)), (1, ('B', 2)), (2, ('C', 3)), (3, ('D', 4))]
Les paires clé-valeur sont regroupées dans des n-uplets et doivent donc être décompressées de la même manière.
En supposant que vous souhaitiez simplement énumérer les paires clé/valeur (et que vous n'avez pas besoin de l'index i
), vous pouvez utiliser iter()
:
d={'A': 1, 'B': 2, 'C': 3, 'D': 4}
for k,v in iter(d.items()):
print(k,v)
Cela imprime quelque chose comme
A 1
C 3
B 2
D 4
Notez que les entrées ne sont pas nécessairement commandées.