0

ベースリストがあります

li = ['fca', 'fc_add', 'fca_2', 'fcadd_2', 'Red_Exis', 'G_Exis', 'P_Exis', 'fam_1']

リスト内のアイテムのインデックス位置を使用して、次の辞書をソートしたい

リスト項目はキーです。

dic = {'G_Exis': 'abc', 'fca': '210Y', 'Red_Exis': 107, 'fc_add': '999 Des ST.'} 

最終的にソートされた辞書が次のようになる必要があります。

fin_dic = {'fca': '210Y', 'fc_add': '999 Des ST.', 'Red_Exis': 107, 'G_Exis': 'abc'}

事前にたくさんありがとう。

4

1 に答える 1

2

辞書は順序を守らないので、次を使用してcollections.OrderedDictください:

from collections import OrderedDict
od = OrderedDict()

for item in li:
    if item in dic:
        od[item] = dic[item]
print od

OrderedDict([('fca', '210Y'), ('fc_add', '999 Des ST.'), ('Red_Exis', 107),
             ('G_Exis', 'abc')])

またはワンライナーとして:

OrderedDict(sorted(dic.items(), key=lambda t: li.index(t[0])))
于 2013-02-02T08:05:01.963 に答える