2016-05-17 13 views
2

Ich habe ein Diktat {'a': 2, 'b': 0, 'c': 1}.Wie Tasten des Diktats nach Werten sortiert werden?

benötigen Schlüssel durch Werte zu sortieren, so dass ich eine Liste bekommen kann ['b', 'c', 'a']

Gibt es eine einfache Möglichkeit, dies zu tun?

+0

Mögliche Duplikat [Sortieren ein Wörterbuch Python von value] (http://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value) – zondo

Antwort

4
sorted_keys = sorted(my_dict, key=my_dict.get) 
2

versuchen Sie dies:

import operator 
lst1 = sorted(lst.items(), key=operator.itemgetter(1)) 
+0

Es gibt [('b', 0), ('c', 1), ('a', 2)] zurück. Schließen. – delsin

+0

Jetzt können Sie den 0. Index jedes Schlüsselwertpaares kopieren und drucken. Auf diese Weise verlieren Sie nicht einmal die Zuordnung von Schlüssel und Wert. –

2
>>> d={'a': 2, 'b': 0, 'c': 1} 
>>> [i[0] for i in sorted(d.items(), key=lambda x:x[1])] 
['b', 'c', 'a'] 
1

Es gibt eine einfache Möglichkeit, es zu tun. Sie können .items() verwenden, um den Schlüsselwert abzurufen und sortiert zu verwenden, um sie entsprechend zu sortieren.

dictionary = sorted(dictionary.items(),key=lambda x:x[1]) 
+0

Das ist nicht das, was "umgekehrt" tut .... –

0
>>> d = {'a':2, 'b':0, 'c':1} 
>>> sor = sorted(d.items(), key=lambda x: x[1]) 
>>> sor 
[('b', 0), ('c', 1), ('a', 2)] 
>>> for i in sor: 
...  print i[0] 
... 
b 
c 
a 
Verwandte Themen