Python如何将字典列表中相同键的对应值按分号合并拼接
实现方案
方案1:原生Python实现(无第三方依赖)
直接通过字典推导式完成逻辑,无需额外转换矩阵,代码简洁易读:
data = [{'name': 'Dave', 'role': 'Manager'}, {'name': 'David', 'role': 'Engineer'}] if not data: result = {} else: # 若不同字典存在缺键,可将item[key]替换为item.get(key, "") result = {key: ";".join([item[key] for item in data]) for key in data[0].keys()} print(result) # 输出:{'name': 'Dave;David', 'role': 'Manager;Engineer'}
如果列表内的字典键不统一,可先提取所有唯一键再做拼接,兼容缺键场景:
# 提取所有字典的键的并集 all_keys = {k for item in data for k in item.keys()} result = {key: ";".join([item.get(key, "") for item in data]) for key in all_keys}
方案2:pandas实现(适合批量数据处理场景)
如果你已经在使用pandas做数据处理,一行代码即可得到结果:
import pandas as pd result = pd.DataFrame(data).agg(";".join).to_dict()
内容的提问来源于stack exchange,提问作者Saad Hasan
相关产品推荐
相关产品推荐

