如何在Python中合并多个由字典组成的对象数组?
Python实现两个数组对应位置对象合并的方案
以下是几种不同场景下的实现方式,默认两个数组长度相同、对应位置需要合并:
方案1:Python 3.9及以上版本(最简洁)
用Python 3.9新增的字典合并运算符|,配合列表推导式+zip遍历对应位置元素:
# 定义两个原始数组 arr_name = [{'name': 'James'}, {'name': 'Abhinay'}, {'name': 'Peter'}] arr_age = [{'age': 1}, {'age': 2}, {'age': 3}] # 合并操作 result = [item1 | item2 for item1, item2 in zip(arr_name, arr_age)] print(result) # 输出:[{'name': 'James', 'age': 1}, {'name': 'Abhinay', 'age': 2}, {'name': 'Peter', 'age': 3}]
方案2:兼容所有Python3版本
用字典解包语法实现合并,兼容性更好:
result = [{**item1, **item2} for item1, item2 in zip(arr_name, arr_age)]
方案3:传统循环写法(可读性更高,方便加自定义逻辑)
如果需要在合并过程中加额外校验,可以用循环+update方法实现:
result = [] for item1, item2 in zip(arr_name, arr_age): # 先拷贝第一个对象,避免修改原始数组 merged_item = item1.copy() merged_item.update(item2) result.append(merged_item)
注意事项
如果两个数组长度不一致,zip默认会以更短的数组长度为准进行合并;如果需要按更长的数组长度合并、缺失位置补空值,可以用itertools.zip_longest代替zip。
内容的提问来源于stack exchange,提问作者user12217822
相关产品推荐
相关产品推荐

