Tri dictionnaire par clés - Python - Programmation
Marsh Posté le 06-04-2009 à 18:15:23
gennosuke a écrit : Comment obtenir ce dictionnaire trié par clés ? |
Un dict python est un mapping, pas une séquence, ce n'est ni trié ni triable, et accessoirement l'ordre d'itération n'est pas stable.
Au mieux, tu peux récupérer une séquence triée de (clé, valeur):
Code :
|
En third-party, il y a un sorteddict sur Pypy issu d'une proposition de PEP abandonnée, un autre dans Django, et quelques implés d'ordereddict. Mais bon c'est rarement vraiment utile.
Marsh Posté le 06-04-2009 à 18:38:25
OK, merci.
Ca s'arrange, j'ai fait appel à sorted(dico_ref) au lieu de dico_ref.keys() par la suite pour appeler les listes de dico_ref dans l'ordre des clés triées.
A +
Marsh Posté le 06-04-2009 à 17:40:30
Bonjour,
sous Python 2.5, j'ai un dictionnaire :
>>> dico_ref
{'r3': ['choco'], 'r1': ['fraise'], 'r2': ['vanille','choco']}
Je voudrais trier dico_ref par ordre alpha-numérique des clés (string), ie obtenir :
>>> {'r1': ['fraise'], 'r2': ['vanille','choco'], 'r3': ['choco']}
J'ai essayé :
>>> [(k,dico_ref[k]) for k in sorted(dico_ref.keys())]
mais ça me renvoie évidemment une liste de tuples, et je perds le format dictionnaire que je veux conserver.
Comment obtenir ce dictionnaire trié par clés ?
Merci.