根据首选顺序更改字典键的顺序
Posted
技术标签:
【中文标题】根据首选顺序更改字典键的顺序【英文标题】: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
中的键在末尾。
【问题讨论】:
请重新填写tour,阅读what's on-topic here、How to Ask和question checklist,并提供minimal reproducible example。 “为我实现此功能”与此站点无关。你必须诚实地尝试,然后就你的算法或技术提出一个具体问题。 @PranavHosangadi 好的,对不起 【参考方案1】:建议算法:
-
创建一个新的、最初为空的字典;
遍历
preferred_order
:对于preferred_order
中的每个key
,如果旧字典中存在key: value
,则将其添加到新字典中,并将其从旧字典中删除;
对于旧字典中剩余的每个 key: value
对,将其添加到新字典中。
对于第 3 步,您可以使用 dict.update
或 |=
。
进一步阅读:
documentation ondict.update
and |=
;
more about |=
;
How do I sort a dictionary by value?;
您可以在 *** 上搜索“按键排序字典”,但请注意,大多数答案都已过时,建议使用 collections.OrderedDict
而不是 dict
,自 Python 3.7 起不再需要。
【讨论】:
非常感谢!以上是关于根据首选顺序更改字典键的顺序的主要内容,如果未能解决你的问题,请参考以下文章