假设我有一个 collections.OrderedDict
对象和一个重新排列的键列表:
ordereddict = collections.OrderedDict((
('key_78', 'value'),
('key_40', 'value'),
('key_96', 'value'),
('key_53', 'value'),
('key_04', 'value'),
('key_89', 'value'),
('key_52', 'value'),
('key_86', 'value'),
('key_16', 'value'),
('key_63', 'value'),
))
# Example only; actual list will **not** == sorted(ordereddict)
key_list = ['key_04', 'key_16', 'key_40', 'key_52', 'key_53', 'key_63', 'key_78', 'key_86', 'key_89', 'key_96']
如何对 OrderedDict
进行排序,使其与 key_list
的排序方式相同?
最佳答案
只需创建一个新的 OrderedDict:
newdct = OrderedDict((key, olddct[key]) for key in sortedlist)
如果您真的需要就地发生这种情况,您可以清除旧的 dct 并用新的更新它:
olddct.clear()
olddct.update(newdct)
关于python - 如何使用排序的键列表对 OrderedDict 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587174/