Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1887 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Tri dictionnaire par clés

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri dictionnaire par clés

n°1870214
gennosuke
Posté le 06-04-2009 à 17:40:30  profilanswer
 

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.

mood
Publicité
Posté le 06-04-2009 à 17:40:30  profilanswer
 

n°1870236
masklinn
í dag viðrar vel til loftárása
Posté le 06-04-2009 à 18:15:23  profilanswer
 

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 :
  1. >>> d = {'r3': ['choco'], 'r1': ['fraise'], 'r2': ['vanille','choco']}
  2. >>> d
  3. {'r1': ['fraise'], 'r2': ['vanille', 'choco'], 'r3': ['choco']}
  4. >>> sorted(d.iteritems(), reverse=True)
  5. [('r3', ['choco']), ('r2', ['vanille', 'choco']), ('r1', ['fraise'])]


 
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.


Message édité par masklinn le 06-04-2009 à 18:21:31

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1870239
gennosuke
Posté le 06-04-2009 à 18:38:25  profilanswer
 

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 +


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Tri dictionnaire par clés

 

Sujets relatifs
Tri des éléments d'un tableauTri d'un tableau
Tri d'un tableau2 Clés étrangères sur une table
Programme de Triexemple syntaxe dictionnaire des données oracle
Une alternative au switch case, le dictionnaire!![RESOLU] Tri + somme pour une colonne
[PHP] Tri tableau multidimentionel[access] Tri par ordre chronologique et non pas alphabétique
Plus de sujets relatifs à : Tri dictionnaire par clés


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR