57 votes

trier les valeurs et retourner la liste des clés à partir d'un dict python

Duplicata possible :
Python : Trier un dictionnaire par valeur

J'ai un dictionnaire comme celui-ci :

A = {'Name1':34, 'Name2': 12, 'Name6': 46,....}

Je veux une liste de clés triée par les valeurs, c'est-à-dire [Name2, Name1, Name6....]

Merci !!!

76voto

phihag Points 89765

Utilisation sorted avec le get comme clé (les clés du dictionnaire sont accessibles par la méthode itération ) :

sorted(A, key=A.get)

8voto

Mike Graham Points 22480

Utilisation sorted 's key argument

sorted(d, key=d.get)

6voto

Ned Batchelder Points 128913

sorted(a.keys(), key=a.get)

Cela permet de trier les clés et, pour chaque clé, d'utiliser a.get pour trouver la valeur à utiliser comme valeur de tri.

4voto

David Wolever Points 34304

J'utiliserais :

items = dict.items()
items.sort(key=lambda item: (item[1], item[0]))
sorted_keys = [ item[0] for item in items ]

En key est un appel qui renvoie la clé de tri à utiliser. Dans ce cas, je renvoie un tuple de (value, key) mais vous pourriez simplement renvoyer la valeur (ie, key=lambda item: item[1] ) si vous le souhaitez.

Prograide.com

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.

Powered by:

X