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

如何用Python字典推导式实现指定嵌套字典生成逻辑?

如何写出匹配原循环结构的字典推导式?

你已经写出了键互换版本的字典推导式,但想要和原循环完全对应结构的版本对吧?其实很简单,只需要按照原循环的嵌套顺序来构建推导式就行:

原循环的逻辑是:

  1. 外层遍历bms的每个key, val对,为每个key初始化一个空字典
  2. 内层遍历bmmaps.columns的每个reg,给bmcdsreg[key][reg]赋值val*bmmaps[reg]

对应的字典推导式就是:

bmcdsreg = {
    key: {reg: val * bmmaps[reg] for reg in bmmaps.columns}
    for key, val in bms.iteritems()
}

对比说明

你之前写的版本是把reg作为外层键,而这个版本和原循环完全一致:外层键是bms的key,每个key对应的内层字典是遍历bmmaps.columns生成的键值对。

拆解一下这个推导式的对应关系:

  • 外层的{key: ... for key, val in bms.iteritems()} 对应原循环的for key, val in bms.iteritems(): bmcdsreg[key] = {}
  • 内层的{reg: val * bmmaps[reg] for reg in bmmaps.columns} 对应原循环里的内层循环,直接生成每个key对应的嵌套字典内容

这样写出来的推导式和原循环的执行逻辑、最终生成的字典结构完全一致,只是用更简洁的字典推导式语法实现了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:02:28