按id匹配规则合并字典与字典列表的实现方法咨询
实现方案
核心思路
- 先将待合并的字典列表预处理为id到对应字典的映射表,单次遍历即可完成,适合大规模数据场景,后续查找时间复杂度为O(1)
- 遍历原字典的键值对,通过映射表快速匹配到对应数据,直接生成结果字典
代码实现
# 输入数据 dict1 = {'0': '5251', '1': '5259'} merge_list = [{'id': 5259, 'name': 'chair'}, {'id': 5251, 'name': 'table'}] # 构建id映射表 id_map = {item['id']: item for item in merge_list} # 生成合并结果 result = {key: id_map[int(value)] for key, value in dict1.items()}
输出验证
执行print(result)即可得到目标结果:
{'0': {'id': 5251, 'name': 'table'}, '1': {'id': 5259, 'name': 'chair'}}
如果需要适配dict1值和id的类型差异,也可以在构建映射表时直接将id转为字符串:
id_map = {str(item['id']): item for item in merge_list} result = {key: id_map[value] for key, value in dict1.items()}
内容的提问来源于stack exchange,提问作者Leemosh
相关产品推荐
相关产品推荐

