|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
比如:
s1={"a":1,"b":2}
s2={"a":21,"c":3}
s3={"a":51,"b":22}
s4={"a":11,"d":4}
s5={"e":5}
要求合并后,所有字典长度一致,none项用空补齐
s1={"a":1,"b":2,'c':"",'d':"","e":""}
s2={"a":21,"b":"","c":3,'d':"","e":""}
s3={"a":51,"b":22,"c":"",'d':"","e":""}
s4={"a":11,"b":"","c":"","d":4,"e":""}
s5={"a":"","b":"",'c':"",'d':"","e":5}
本帖最后由 isdkz 于 2023-4-29 09:41 编辑
我们可以进一步简化代码,将整个操作放在一个列表推导中:
- s1={"a":1,"b":2}
- s2={"a":21,"c":3}
- s3={"a":51,"b":22}
- s4={"a":11,"d":4}
- s5={"e":5}
- dict_list = [s1, s2, s3, s4, s5]
- merged_keys = {k for d in dict_list for k in d.keys()}
- merged_dicts = [{key: d.get(key, '') for key in merged_keys} for d in dict_list]
- for d in merged_dicts:
- print(d)
复制代码
输出结果:
- {'a': 1, 'b': 2, 'c': '', 'd': '', 'e': ''}
- {'a': 21, 'b': '', 'c': 3, 'd': '', 'e': ''}
- {'a': 51, 'b': 22, 'c': '', 'd': '', 'e': ''}
- {'a': 11, 'b': '', 'c': '', 'd': 4, 'e': ''}
- {'a': '', 'b': '', 'c': '', 'd': '', 'e': 5}
复制代码
这种写法将整个操作放在一个列表推导中,省略了定义和调用函数的步骤。虽然代码更简洁,但可读性可能会受到一定影响。所以在实际应用中,请根据您的需求和团队的编码风格来选择合适的方法。
|
|