Je veux parcourir un dictionnaire en python par numéro d'index.
Exemple :
dict = {'Apple':'red','mango':'green','orange':'orange'}
Je souhaite parcourir le dictionnaire du premier au dernier afin que je puisse accéder aux éléments du dictionnaire par leurs index. Par exemple, le premier élément sera Apple et le deuxième élément sera la mangue et sa valeur sera verte.
Quelque chose comme ça:
for i in range(0,len(dict)):
dict.i
Vous pouvez parcourir des clés et obtenir des valeurs par clés:
for key in dict.iterkeys():
print key, dict[key]
Vous pouvez parcourir les clés et les valeurs correspondantes:
for key, value in dict.iteritems():
print key, value
Vous pouvez utiliser enumerate
si vous voulez des index (rappelez-vous que les dictionnaires n'ont pas d'ordre):
>>> for index, key in enumerate(dict):
... print index, key
...
0 orange
1 mango
2 Apple
>>>
Il y a de très bonnes réponses ici. J'aimerais ajouter ce qui suit ici aussi:
some_dict = {
"foo": "bar",
"lorem": "ipsum"
}
for index, (key, value) in enumerate(some_dict.items()):
print(index, key, value)
résulte en
0 foo bar
1 lorem ipsum
Semble fonctionner avec Python 2.7
et 3.5
Je voulais savoir (idx, clé, valeur) pour un python OrderedDict aujourd'hui (mappage de SKU sur des quantités dans l'ordre de leur apparition sur un reçu). Les réponses ici étaient toutes décevantes.
En python 3, au moins, cette méthode fonctionne et a un sens.
In [1]: from collections import OrderedDict
...: od = OrderedDict()
...: od['a']='spam'
...: od['b']='ham'
...: od['c']='eggs'
...:
...: for i,(k,v) in enumerate(od.items()):
...: print('%d,%s,%s'%(i,k,v))
...:
0,a,spam
1,b,ham
2,c,eggs
Puisque vous voulez itérer dans l’ordre, vous pouvez utiliser sorted
:
for k, v in sorted(dict.items()):
print k,v
Faire ceci:
for i in dict.keys():
dict[i]