2016-05-17 14 views
2

私はdict {'a': 2, 'b': 0, 'c': 1}を持っています。私はリスト['b', 'c', 'a']dictのキーを値でソートする方法は?

これを行うための簡単な方法がありますを取得することができるように

値でキーをソートする必要がありますか?

+0

[値によってPythonの辞書をソート]の可能な重複(http://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value) – zondo

答えて

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

はこれを試してみてください。

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

それは[( 'b'、0)、( 'c'、1)、( 'a'、2)]を返します。閉じる。 – delsin

+0

これで、すべてのキー値ペアの0番目のインデックスをループして出力できます。したがって、これはあなたがキーと値のマッピングを失うことさえない方法です。 –

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

それを行うための簡単な方法があります。 .items()を使用してキー値を取得し、ソートを使用してそれに応じてソートすることができます。

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

これは '逆'とは異なります.... –

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 
関連する問題