合并规则:
- project_id,description想同则合并成一个,没有的话新增
# -- coding:utf-8 --
# 初始列表
job_groups = [{"project_id": 25, "description": "mdwsw 666", "count_job_group": 8},{"project_id": 12, "description": "mdwsw 222", "count_job_group": 10},{"project_id": 19, "description": "mdwsw 111", "count_job_group": 118},{"project_id": 14, "description": "mdwsw 444", "count_job_group": 2},{"project_id": 15, "description": "mdwsw 555", "count_job_group": 2}
]jobs = [{"project_id": 12, "description": "mdwsw 222", "count_job": 2},{"project_id": 19, "description": "mdwsw 111", "count_job": 5},{"project_id": 22, "description": "mdwsw 333", "count_job": 1}
]# 合并列表
def merge_lists(list1, list2):merged = list1.copy() # 创建list1的副本以避免修改原始列表for item2 in list2:# 查找是否有相同的project_id和descriptionfound = Falsefor item1 in merged:if item1['project_id'] == item2['project_id'] and item1['description'] == item2['description']:# 如果找到,合并字典item1.update(item2)found = Truebreakif not found:# 如果没有找到,添加到合并列表中merged.append(item2)return merged# 执行合并
merged_list = merge_lists(job_groups, jobs)# 打印合并后的列表
print(merged_list)
[{‘project_id’: 25, ‘description’: ‘mdwsw 666’, ‘count_job_group’: 8}, {‘project_id’: 12, ‘description’: ‘mdwsw 222’, ‘count_job_group’: 10, ‘count_job’: 2}, {‘project_id’: 19, ‘description’: ‘mdwsw 111’, ‘count_job_group’: 118, ‘count_job’: 5}, {‘project_id’: 14, ‘description’: ‘mdwsw 444’, ‘count_job_group’: 2}, {‘project_id’: 15, ‘description’: ‘mdwsw 555’, ‘count_job_group’: 2}, {‘project_id’: 22, ‘description’: ‘mdwsw 333’, ‘count_job’: 1}]