根据首选顺序更改字典键的顺序

问题描述

输入是字典,例如:

{'first_name':'Jane','occupation': 'astronaut','age':27,'last_name':'Doe'}

键需要重新排列以按特定顺序排列,在列表中给出,例如:

preferred_order = ['first_name','last_name','age','location']

字典可能没有 preferred_order 列表中的所有键,并且可能有列表中没有出现的键。

在这种特定情况下,排序的结果应该是:

{'first_name':'Jane','last_name':'Doe','occupation': 'astronaut'}

location添加到字典中,不在 preferred_order 中的键位于末尾。

解决方法

推荐算法:

  1. 创建一个新的、初始为空的字典;
  2. 迭代preferred_order:对于key中的每一个preferred_order,如果旧字典中存在key: value,则将其添加到新字典中,并将其从旧字典中删除;
  3. 对于旧字典中剩余的每个 key: value 对,将其添加到新字典中。

对于第 3 步,您可以使用 dict.update|=

进一步阅读: