Il y a une fonction existante qui se termine par :
qui retourne un itérateur non trié pour un dictionnaire donné. Je voudrais retourner un itérateur qui parcourt les éléments dans un ordre trié. Comment je fais que ?
Il y a une fonction existante qui se termine par :
qui retourne un itérateur non trié pour un dictionnaire donné. Je voudrais retourner un itérateur qui parcourt les éléments dans un ordre trié. Comment je fais que ?
Utilisation du `` fonction :
Si vous voulez un itérateur réel sur les résultats triés, depuis `` retourne une liste, utilisation :
Un dict les clés sont stockées dans une table de hachage, de sorte que leur ordre naturel', c'est à dire pseudo-aléatoire. Toute autre commande est un concept de la consommation de la dict.
sorted() renvoie toujours une liste, pas un dict. Si vous passer un dict.les éléments() (qui produit une liste de tuples), il sera de retour une liste de tuples [(k1,v1), (k2,v2), ...] qui peut être utilisé dans une boucle d'une manière très semblable à une dict, mais il n'est pas en tout cas d'un dict!
foo = {
'a': 1,
'b': 2,
'c': 3,
}
print foo
>>> {'a': 1, 'c': 3, 'b': 2}
print foo.items()
>>> [('a', 1), ('c', 3), ('b', 2)]
print sorted(foo.items())
>>> [('a', 1), ('b', 2), ('c', 3)]
La suite ressemble à un dict dans une boucle, mais il ne l'est pas, c'est une liste de tuples décompressée dans k,v:
for k,v in sorted(foo.items()):
print k, v
À peu près équivalent à:
for k in sorted(foo.keys()):
print k, foo[k]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.