【问题标题】:Changing order of dictionaries keys based on preferred order根据首选顺序更改字典键的顺序
【发布时间】:2021-09-07 03:42:38
【问题描述】:

输入是字典,例如:

{'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', 'age':27, 'occupation': 'astronaut'}

location 没有被添加到字典中,不在 preferred_order 中的键在末尾。

【问题讨论】:

标签: python sorting dictionary ordereddictionary


【解决方案1】:

建议算法:

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

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

进一步阅读:

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 2014-05-05
  • 2021-07-19
  • 2012-12-11
  • 2020-08-14
相关资源
最近更新 更多