You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个列表合并为字典并合并重复键对应的值?

合并含重复键的列表为字典

方法一:基础遍历处理

直接遍历两个列表的键值对,动态处理重复键的存储形式:

A_list = ["a", "b", "c", "b"]
B_list = ["xx", "123", "345", "cdf"]

merged_dict = {}
for key, value in zip(A_list, B_list):
    if key in merged_dict:
        # 若键已存在,将单个值转为列表后追加新值
        if not isinstance(merged_dict[key], list):
            merged_dict[key] = [merged_dict[key]]
        merged_dict[key].append(value)
    else:
        merged_dict[key] = value

print(merged_dict)
# 输出: {'a': 'xx', 'b': ['123', 'cdf'], 'c': '345'}

方法二:借助defaultdict简化

先用defaultdict统一收集所有值为列表,再将长度为1的列表转为单个值:

from collections import defaultdict

A_list = ["a", "b", "c", "b"]
B_list = ["xx", "123", "345", "cdf"]

temp_dict = defaultdict(list)
for key, value in zip(A_list, B_list):
    temp_dict[key].append(value)

# 转换为目标格式
merged_dict = {k: v[0] if len(v) == 1 else v for k, v in temp_dict.items()}

print(merged_dict)
# 输出: {'a': 'xx', 'b': ['123', 'cdf'], 'c': '345'}

逻辑说明

  • 两种方法都通过zip()关联两个列表的对应元素,保证键值对的匹配关系。
  • 对于重复出现的键,最终以列表形式存储所有对应值;仅出现一次的键,保留单个值的形式。

内容的提问来源于stack exchange,提问作者shishi1181

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:34:58