在Python中按给定列表排序字典

eri*_*MTR 1 python sorting dictionary list

是否有一种简单的方法按给定列表对字典进行排序?

例:

data = OrderedDict([('pi', 'var1'), ('pa', 'var2'), ('pu', 'var3')])
order = ['pu', 'pi', 'pa']
Run Code Online (Sandbox Code Playgroud)

请求有序字典:

>>> OrderedDict([('pu', 'var3'), ('pi', 'var1'), ('pa', 'var2')])
Run Code Online (Sandbox Code Playgroud)

提前致谢

Dav*_*son 7

您可以使用以下生成器理解来执行此操作:

sorted_data = OrderedDict((k, data[k]) for k in order)
Run Code Online (Sandbox Code Playgroud)