两个list比较,id不同则合并
时间: 2023-08-16 20:06:24 浏览: 40
可以使用以下代码实现:
```python
list1 = [{'id': 1, 'name': 'John'}, {'id': 2, 'name': 'Mary'}, {'id': 3, 'name': 'Bob'}]
list2 = [{'id': 2, 'age': 25}, {'id': 3, 'age': 30}, {'id': 4, 'age': 40}]
merged_list = list1
for item in list2:
id = item['id']
found = False
for i, existing_item in enumerate(merged_list):
if existing_item['id'] == id:
merged_list[i].update(item)
found = True
break
if not found:
merged_list.append(item)
print(merged_list)
```
输出结果为:
```
[{'id': 1, 'name': 'John'}, {'id': 2, 'name': 'Mary', 'age': 25}, {'id': 3, 'name': 'Bob', 'age': 30}, {'id': 4, 'age': 40}]
```
该代码首先将 `list1` 赋值给 `merged_list`,然后遍历 `list2` 的每个元素。对于每个元素,它会检查它的 `id` 是否已经存在于 `merged_list` 中的某个元素中。如果是,则更新该元素;否则,将该元素添加到 `merged_list` 中。最终,`merged_list` 包含两个列表中的所有元素,并且如果某个元素在两个列表中都存在,则合并它们。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)