Bonjour.
J'utilise python, mais je suis débutante.
Svp, j'ai un dictionnaire, je veux le trier
Est ce que c'est vrai que c'est impossible de le faire directement, et je dois passé par une liste ou tableau.
Merci pour tout aide.
Bonjour.
J'utilise python, mais je suis débutante.
Svp, j'ai un dictionnaire, je veux le trier
Est ce que c'est vrai que c'est impossible de le faire directement, et je dois passé par une liste ou tableau.
Merci pour tout aide.
j'ai oublié un petit détail,
je veux trier le dictionnaire par ordre croissants des valeurs.
Ex: dic= {'xxxx': 24, yyyyy': 7, 'zzzzzz': 1}
Je veux qu'il affiche {'zzzzzz': 1, yyyyy': 7,'xxxx': 24}
Merci
Je ne suis pas sur mais il ne me semble pas que cela soit possible
Sinon tu peux transformer ton dico en liste
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 >>> dic {24: 'xxxx', 1: 'zzzzzz', 7: 'yyyyy'} >>> dic.items() #transforme ton dico en type list, tu pourras donc trier [(24, 'xxxx'), (1, 'zzzzzz'), (7, 'yyyyy')] #le resultat pour que tu comprennes >>> list=dic.items() #j'affecte à une variable le resultat >>> list.sort() #tri de la liste >>> list #affichage de la liste [(1, 'zzzzzz'), (7, 'yyyyy'), (24, 'xxxx')]
Effectivement, il n'est pas possible de trier un dictionnaire.
Pour trier par valeur, plutôt que par clé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 >>> dic ={'xxxx': 24, 'yyyyy': 7, 'zzzzzz': 1} >>> from operator import itemgetter >>> l = dic.items() >>> l.sort(key=itemgetter(1)) >>> l [('zzzzzz', 1), ('yyyyy', 7), ('xxxx', 24)] >>> #ou en une ligne: >>> sorted(dic.items(),key=itemgetter(1)) [('zzzzzz', 1), ('yyyyy', 7), ('xxxx', 24)]
Grand merci.
ça marche trés bien.
Et si je veux trié on ordre décroissant j'utilise quelle fonction?
J'ai trouvé, il faut modifié l'instruction comme ceci :
l.sort(key=itemgetter(1),reverse=True)
Merci
Quelque chose comme cela devrait convenir (si le but est uniquement de faire de l'affichage):
Thierry
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for key in reversed(sorted(dic)): print "%s: %d" % (key, dic[key])
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager