Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで辞書の値で辞書のリストを並べ替えるにはどうすればよいですか?


Pythonには、反復可能オブジェクトの要素を特定の順序で並べ替える組み込み関数sorted()があります。

sorted(iterable[, key][, reverse]

2番目のパラメーターは、戻り値がソートのキーとして使用される関数です。 3番目のパラメータはデフォルトでfalseです。trueの場合、ソートされたリストは降順で表示されます。

辞書キーの値をソートされた関数のキーとして定義するラムダ関数を使用します。次の例では、キーに関連付けられた値の昇順に従って辞書のリストを並べ替えます。

>>> dictlist=[{'name':'Rahul', 'age':23, 'marks':60}, {'name':'Anil', 'age':18, 'marks':55}, {'name':'Sunil', 'age':21, 'marks':90}]
>>> newlist=sorted(dictlist, key = lambda k:k['name'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Sunil', 'age': 21, 'marks': 90}]
>>> newlist=sorted(dictlist, key = lambda k:k['age'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}]
>>> newlist=sorted(dictlist, key = lambda k:k['marks'], reverse=True)
>>> newlist
[{'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Anil', 'age': 18, 'marks': 55}]

  1. Pythonで辞書を値で並べ替える方法は?

    Pythonの標準配布には、コレクションモジュールが含まれています。高性能コンテナデータ型の定義があります。 OrderedDictは、ディクショナリオブジェクトに追加されたエントリの順序を記憶するディクショナリのサブクラスです。順序付けられた辞書を反復処理すると、アイテムはキーが最初に追加された順序で返されます。 >>> from collections import OrderedDict >>> D = {5:fff, 3:ttt, 1:ooo,4:bbb, 2:ddd} >>> OrderedDict(D.items()) &nb

  2. Pythonで辞書のすべての値を出力するにはどうすればよいですか?

    辞書オブジェクトは、この仕事をしてくれるvalues()メソッドを持っています。 >>> D1 = {1:a, 2:b, 3:c} >>> D1.values() dict_values([a, b, c]) >>> list(D1.values()) [a, b, c] 辞書のkeys()メソッドによって返されるキーのlidtを反復処理することによって、対応する値を取得することもできます >>> L1 = list(D1.keys()) >>> for i in L1: print (i)