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

Pythonで辞書をキーで並べ替える方法は?


Pythonの標準配布には、コレクションモジュールが含まれています。高性能コンテナデータ型の定義があります。 OrderedDictは、ディクショナリオブジェクトに追加されたエントリの順序を記憶するディクショナリのサブクラスです。順序付けられた辞書を反復処理すると、アイテムはキーが最初に追加された順序で返されます。

>>> from collections import OrderedDict
>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'}
>>> OrderedDict(D.items())
 OrderedDict([(5, 'fff'), (3, 'ttt'), (1, 'ooo'), (4, 'bbb'), (2, 'ddd')])

また、指定された順序で反復可能な要素を並べ替えるsorted()関数を使用する必要があります。この関数は、ソートのキーとして使用される引数として関数を取ります。辞書をキーで並べ替えるつもりなので、タプルの0番目の要素を並べ替えのキーとして使用します

>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'}
>>> OrderedDict(sorted(D.items(), key = lambda t: t[0]))
   OrderedDict([(1, 'ooo'), (2, 'ddd'), (3, 'ttt'), (4, 'bbb'), (5, 'fff')])

OrderedDictオブジェクトは、通常の辞書オブジェクトに解析できます

>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[0])))
>>> D1
   {1: 'ooo', 2: 'ddd', 3: 'ttt', 4: 'bbb', 5: 'fff'}

  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で辞書のすべてのキーを印刷するにはどうすればよいですか?

    辞書オブジェクトには、この仕事をしてくれるkeys()メソッドがあります。 >>> D1 = {1:a, 2:b,3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3] 反復可能なリストオブジェクトは、forループを使用してトラバースできます >>> L1 = list(D1.keys()) >>> for i in L1: print (i) 1 2 3