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

Python如何通过映射字典更新目标字典中列表类型的值

实现方案

首先给出初始定义的两个字典:

dict1 = {'key1': ['val1', 'val2', 'val3'], 'key2': ['val3', 'val4']}
dict2 = {'val1': ['a', 'b'], 'val3': ['c', 'd']}

核心逻辑说明

我们只需要对dict1每个键对应的列表做元素展开替换即可:

  • 遍历dict1的每一组键值对
  • 对每个值列表里的元素逐个判断:如果该元素是dict2的键,就把dict2对应的值列表里的所有元素追加到结果里;如果不是,直接追加原元素
  • 把处理好的新列表赋值给对应键即可

可直接运行的代码

基础循环写法(可读性更高)

result = {}
for k, val_list in dict1.items():
    new_list = []
    for item in val_list:
        if item in dict2:
            new_list.extend(dict2[item])
        else:
            new_list.append(item)
    result[k] = new_list

# 若需要直接修改原dict1而非生成新字典,可直接赋值:
# dict1 = result
print(result)

简洁列表推导写法

result = {
    k: [ele for item in val_list for ele in (dict2[item] if item in dict2 else [item])]
    for k, val_list in dict1.items()
}
print(result)

输出结果验证

运行后得到的结果和需求完全一致:

{'key1': ['a', 'b', 'val2', 'c', 'd'], 'key2': ['c', 'd', 'val4']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:15:00