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 回答