Python中如何给字典补充其他字典的缺失键并统一按键排序
实现方法
步骤说明
- 先收集所有字典的全部唯一键,得到所有需要补全的键的集合
- 遍历每个字典,为缺失的键赋值为空字符串
- 对每个字典的键按升序排序,生成有序的新字典
完整代码示例
# 你的字典集合,这里替换为你实际生成的字典列表 dict_list = [ {'name': 'xxxx'}, {'name': 'yyyy','age':'28'}, {'name': 'zzzz','age':'27','sex':'F'} ] # 1. 获取所有字典的并集键 all_keys = set().union(*dict_list) # 2. 对每个字典补全缺失键并排序 processed_list = [] for d in dict_list: # 补全缺失键,值设为空字符串 full_dict = {key: d.get(key, "") for key in all_keys} # 按键升序排序,生成有序字典 sorted_dict = dict(sorted(full_dict.items())) processed_list.append(sorted_dict) # 打印结果验证 for item in processed_list: print(item)
输出结果
{'age': '', 'name': 'xxxx', 'sex': ''} {'age': '28', 'name': 'yyyy', 'sex': ''} {'age': '27', 'name': 'zzzz', 'sex': 'F'}
补充说明
- 如果你的Python版本低于3.7,原生字典不保证有序,可以用
collections.OrderedDict替换普通字典来保留排序结果,把排序那行改成sorted_dict = OrderedDict(sorted(full_dict.items()))即可,使用前需要先导入:from collections import OrderedDict - 如果你需要在原字典上修改而不是生成新字典,可以把补全逻辑改成
for key in all_keys: d.setdefault(key, ""),再排序生成新字典即可。
内容的提问来源于stack exchange,提问作者Padfoot123
相关产品推荐
相关产品推荐

