如何按照指定优先顺序重排Python字典的键
Python按指定优先顺序重排字典键实现
排序规则
- 优先按照指定的优先顺序列表排列原字典中存在的对应键,优先列表中不存在于原字典的键不会被新增到结果中
- 原字典中不在优先顺序列表内的键,统一放在排序结果末尾
实现代码
注:Python 3.7及以上版本原生字典默认有序,更低版本可将代码中的普通字典替换为collections.OrderedDict实现相同效果
def sort_dict_by_preferred_order(original_dict: dict, preferred_order: list) -> dict: sorted_dict = {} # 按优先顺序添加存在的键 for key in preferred_order: if key in original_dict: sorted_dict[key] = original_dict[key] # 添加不在优先列表中的剩余键 for key in original_dict: if key not in preferred_order: sorted_dict[key] = original_dict[key] return sorted_dict
示例验证
输入示例:
original_dict = {'first_name':'Jane', 'occupation': 'astronaut', 'age':27, 'last_name':'Doe'} preferred_order = ['first_name', 'last_name', 'age', 'location']
调用方法输出结果:
print(sort_dict_by_preferred_order(original_dict, preferred_order)) # 输出:{'first_name': 'Jane', 'last_name': 'Doe', 'age': 27, 'occupation': 'astronaut'}
内容的提问来源于stack exchange,提问作者eternal_student
相关产品推荐
相关产品推荐

