my_dict = {'a':10, 'b':20, 'c':30}
for key in my_dict:
print key, my_dict[key]
donne
a 10
c 30
b 20
et
my_dict = {'a':10, 'c':30, 'b':20}
for key in my_dict:
print key, my_dict[key]
donne le même résultat
a 10
c 30
b 20
Je me demandais pourquoi la sortie ne ressemblait pas à un 10 b 20 c 30. Comment se fait la sélection des touches lors d'une itération dans un dictionnaire? Est-ce aléatoire?
La méthode keys () d'un objet dictionnaire retourne une liste de toutes les clés utilisées dans le dictionnaire, dans un ordre arbitraire (si vous voulez qu'elle soit triée, appliquez-lui simplement la fonction sorted ()). Pour vérifier si une seule clé se trouve dans le dictionnaire, utilisez le mot clé in.
L'ordre des clés dans a dict()
n'est pas défini (cela dépend de l'implémentation de Python que vous utilisez). Pour parcourir dict de manière ordonnée:
my_dict = {'a': 10, 'b': 20, 'c': 30}
for key in sorted(my_dict.keys()):
print key, my_dict[key]
Cela vous donnera le bon ordre:
a 10
b 20
c 30
La raison pour laquelle les clés ne sont pas triées est qu'elle dict()
utilise une table de hachage pour les stocker, c'est aussi pourquoi vous ne pouvez avoir qu'une seule clé unique et pourquoi vous pouvez avoir des clés composites composées d'objets hachables. Les clés sont triées en fonction de leur hachage, pour une explication plus approfondie, voir cette question SO
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots