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

如何在Python中生成两个字典的所有组合以创建新字典

生成两个字典键组合的乘积字典

首先纠正你代码里的笔误,第二个字典应该命名为d2而非重复的d1:

d1 = {'a':1.2,'b':1.5,'c':1.3}
d2 = {'a':2,'b':1,'c':2}

以下是几种实现目标的方法:

  • 基础嵌套循环写法:
    直观遍历两个字典的键值对,生成新字典的键值组合:

    result = {}
    for key1, val1 in d1.items():
        for key2, val2 in d2.items():
            result[(key1, key2)] = val1 * val2
    
  • 字典推导式(简洁版):
    用一行代码完成逻辑,可读性和效率都不错:

    result = {(k1, k2): v1 * v2 for k1, v1 in d1.items() for k2, v2 in d2.items()}
    
  • 结合itertools.product的写法:
    借助itertools.product生成两个字典键的笛卡尔积,再映射到对应值的乘积:

    from itertools import product
    
    result = {(k1, k2): d1[k1] * d2[k2] for k1, k2 in product(d1.keys(), d2.keys())}
    

以上三种方法最终都会生成你需要的字典,比如('a','a')对应值为1.2 * 2 = 2.4,('a','b')对应值为1.2 * 1 = 1.2,以此类推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:25:48