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

如何自动生成多层嵌套字典?基于现有代码实现三层嵌套

实现多层嵌套字典的Python代码修改方案

嘿,我来帮你搞定这个多层嵌套字典的问题~你已经完成了第一层日期到资产的映射,现在只需要把每个资产对应的'0'替换成包含variables键值对的子字典就行啦。

原代码及运行结果

先回顾下你现有的代码:

variables = ['CHG', 'Open', 'Close']
assets= ['GOOG', 'FB']
dates =['28-09-2020', '25-09-2020']
dct = {x: dict(zip(assets, '0' * len(assets))) for x in dates}

运行结果:

{'28-09-2020': {'GOOG': '0', 'FB': '0'}, '25-09-2020': {'GOOG': '0', 'FB': '0'}}

修改后的代码

只需要调整内层字典的生成逻辑,把每个资产对应的值从字符串'0'改成以variables为键、数值0为值的字典:

variables = ['CHG', 'Open', 'Close']
assets= ['GOOG', 'FB']
dates =['28-09-2020', '25-09-2020']
dct = {x: {asset: {var: 0 for var in variables} for asset in assets} for x in dates}

运行结果

执行后就能得到你想要的目标结构:

{'28-09-2020': {'GOOG': {'CHG': 0, 'Open': 0, 'Close': 0}, 'FB': {'CHG': 0, 'Open': 0, 'Close': 0}}, '25-09-2020': {'GOOG': {'CHG': 0, 'Open': 0, 'Close': 0}, 'FB': {'CHG': 0, 'Open': 0, 'Close': 0}}}

逻辑解释

  • 最外层是日期循环:遍历dates里的每个日期作为顶级键。
  • 中间层是资产循环:对每个日期,遍历assets生成子字典的键,每个资产对应的值是另一个字典。
  • 最内层是变量循环:用字典推导式生成以variables为键、0为值的子字典,完美匹配你需要的嵌套结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:53:10