一覧ネストされた辞書は、辞書には、値に基づいてソート

フォーマット:
データ型のリスト、辞書の要素のリスト。組織による辞書のリスト。

分析:
あなたが最初の大規模な辞書に置か辞書を一覧表示することができ、並べ替え後の全体の辞書のソートが完了すると、フォーム、その後は、辞書のリストにに変換しました

今、各辞書の値に応じてソートされたリストは、そこにあります。

dict_list = [{ "明":87}、{ "MEI":93}、{ "華":68}、{ "JON":75}、{ "ストン":100}、{ "ジャック":56} ]

アイデア:あなたが最初の大規模な辞書に置か辞書を一覧表示することができ、並べ替え後の全体の辞書のソートが完了し、フォーム、その後はでき辞書のリストに変換します。

from operator import itemgetter
dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack": 56}]
mid_dict = {key: value for x in dict_list for key, value in x.items()}
mid_list = sorted(mid_dict.items(), key=itemgetter(1))
fin_list = [{x[0]: x[1]} for x in mid_list]
例子:T=[{'xgei-0/0/1/1': '9'}, {'xgei-0/0/1/2': '20'},{'xgei-0/0/1/15': '12'}]
def Sorted_listdict(dict_list ):
    New_List=[]
    New_D={}
    mid_dict = {key: value for x in dict_list for key, value in x.items()}  ###格式写法。列表与字典的结构
    #print (mid_dict)
    ordered_dict = OrderedDict(sorted(mid_dict.items(), key=lambda t: int(t[1]), reverse=True))
    #print (type(ordered_dict),ordered_dict)
    #<class 'collections.OrderedDict'> OrderedDict([('xgei-0/0/1/2', '20'), ('xgei-0/0/1/15', '12'), ('xgei-0/0/1/1', '9')])
    for x in ordered_dict:
        New_D[x]=mid_dict[x]
    New_List.append(New_D)
    print (New_List)
    return New_List

1. ファンクションキーと値のペアでソート辞書の並べ替え
(、反復可能、鍵逆ソート基本的な機能、ソートを導入する最初は )、ソートされたこれら3つのパラメータを逆転、反復可能、キーの合計。
オブジェクトが反復可能リバース、例えば、dict.items()、dict.keys()等であってもよく、キーが比較に関与する要素を選択するための機能である、逆ソート順序又は逆の順序で指定するために使用され、表し反復されていてもよいです= trueの場合、逆の順序は、=偽である場合には、順序を逆にデフォルト= falseを逆転します。
Yaoanキーと値のペア辞書のソートは、次の文を使用することができます。

>>> dict2={
... '11': {'RX': '-11', 'TX': '-11'},
... '1': {'RX': '-1', 'TX': '-1'},
... '2': {'RX': '-2', 'TX': '-2'},
... '3': {'RX': '-3', 'TX': '-3'},
... '20': {'RX': '-20', 'TX': '-20'},
... '4': {'RX': '-4', 'TX': '-4'},
... '5': {'RX': '-5', 'TX': '-5'},
... '30': {'RX': '-30', 'TX': '-30'},
... '6': {'RX': '-6', 'TX': '-6'},
... '7': {'RX': '-7', 'TX': '-7'}
...  }
>>> sorted(dict2.keys())
['1', '11', '2', '20', '3', '30', '4', '5', '6', '7']
直接使用sorted(d.keys())就能按key值对字典排序,这里是按照顺序对key值排序的,如果想按照倒序排序的话,则只要将reverse置为true即可。

2. 値の辞書による機能のソート値は、ソート
、次のように、主ラムダ式を用いる方法が提供され、本明細書に、あなたは辞書のキーパラメータを使用する必要がある値をソートします:

>>> sorted(dict2.items(),key=lambda i:i[0])
[('1', {'RX': '-1', 'TX': '-1'}), ('11', {'RX': '-11', 'TX': '-11'}), ('2', {'RX': '-2', 'TX': '-2'}), ('20', {'RX': '-20', 'TX': '-20'}), ('3', {'RX': '-3', 'TX': '-3'}), ('30', {'RX': '-30', 'TX': '-30'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'})]
>>> sorted(dict2.items(),key=lambda i:int(i[0]))
[('1', {'RX': '-1', 'TX': '-1'}), ('2', {'RX': '-2', 'TX': '-2'}), ('3', {'RX': '-3', 'TX': '-3'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'}), ('11', {'RX': '-11', 'TX': '-11'}), ('20', {'RX': '-20', 'TX': '-20'}), ('30', {'RX': '-30', 'TX': '-30'})]
>>>

})、アイテム()タプルに要素のための辞書の方法、 およびここで、ラムダ式に対応するキーパラメータを比較パラメータ(キー=ラムダ項目を書き込むかのように、第2の組の要素を選択することを意味する:項目[0]は、最初の要素が比較対象として選択され、それは、キー値の比較、λxと、である:Y xは、出力パラメータを表し、y)は、λの関数の戻り値を示し、この方法辞書できるように値の並べ替え。戻り値は、ソートのリストは、名前と値の組のペアのリストを元の辞書に変換されることに留意されたいです。



図3に示すように、使用関数OrderDictソート(より一般的に適用可能な新しい機能へのpython3 3)

>>> dict1={
... '11': {'RX': '-11', 'TX': '-11'},
... '1': {'RX': '-1', 'TX': '-1'},
... '2': {'RX': '-2', 'TX': '-2'},
... '3': {'RX': '-3', 'TX': '-3'},
... '20': {'RX': '-20', 'TX': '-20'},
... '4': {'RX': '-4', 'TX': '-4'},
... '5': {'RX': '-5', 'TX': '-5'},
... '30': {'RX': '-30', 'TX': '-30'},
... '6': {'RX': '-6', 'TX': '-6'},
... '7': {'RX': '-7', 'TX': '-7'}
...  }
>>> from collections import OrderedDict
>>> ordered_dict = OrderedDict(sorted(dict1.items(), key=lambda t: t[0]))
>>> print (ordered_dict)
OrderedDict([('1', {'RX': '-1', 'TX': '-1'}), ('11', {'RX': '-11', 'TX': '-11'}), ('2', {'RX': '-2', 'TX': '-2'}), ('20', {'RX': '-20', 'TX': '-20'}), ('3', {'RX': '-3', 'TX': '-3'}), ('30', {'RX': '-30', 'TX': '-30'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'})])
>>> new_ordered_dict = OrderedDict(sorted(dict1.items(), key=lambda t: int(t[0])))
>>> print (new_ordered_dict)
OrderedDict([('1', {'RX': '-1', 'TX': '-1'}), ('2', {'RX': '-2', 'TX': '-2'}), ('3', {'RX': '-3', 'TX': '-3'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'}), ('11', {'RX': '-11', 'TX': '-11'}), ('20', {'RX': '-20', 'TX': '-20'}), ('30', {'RX': '-30', 'TX': '-30'})])
>>> type(ordered_dict)       ##返回有序字典
<class 'collections.OrderedDict'>

おすすめ

転載: blog.51cto.com/chier11/2415974