Python如何将两个字典中data字段的列表元素合并为一个新列表
实现方法
你可以直接用Python的列表拼接或者extend()方法完成需求,两种常用方式如下:
方法1:直接列表拼接(生成新列表,不修改原字典数据)
直接对两个data字段的列表做加法运算即可,代码最简单:
item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]} item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]} result = item1['data'] + item2['data'] print(result)
运行输出和你预期的结果完全一致:
[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]
方法2:用extend()方法追加(适合批量处理多个字典)
如果后续还有更多类似结构的字典需要合并,用循环加extend()的方式可拓展性更强:
item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]} item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]} result = [] # 可以任意往下面的列表里新增需要合并的字典 for item in [item1, item2]: result.extend(item['data']) print(result)
注意事项
上面两种方法都是浅拷贝,修改result里的字典元素会同步修改原item1、item2里的对应元素。如果你需要完全隔离新老列表,可以引入深拷贝:
from copy import deepcopy item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]} item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]} result = [] for item in [item1, item2]: result.extend(deepcopy(elem) for elem in item['data']) print(result)
内容的提问来源于stack exchange,提问作者kiran
相关产品推荐
相关产品推荐

