首页 > 解决方案 > 如何将列表转换为嵌套字典?

问题描述

我正在尝试根据下面的列表创建一个嵌套的字典。

assets = ["GOOG", "AMZN"]

variables=['LastTradePrice','Spread','QTD']

c = ['0']

我尝试了下面的代码,但它缺少一些信息并导致一个简短的字典,只有一个资产和一个变量,我预计 2 个资产作为“主键”,3 个变量作为“子键”,每个“子键”后跟 0 作为值。

试过这段代码:

dct = {x: {str(y): str(z)} for x, y, z in zip(assets,variables,c)}

结果我得到:

{'GOOG':{'LastTradePrice':'0'}}

预期结果:

{'GOOG':{'LastTradePrice': '0','Spread':'0','QTD':'0'}, 'AMZN': {'LastTradePrice':'0','Spread':'0','QTD':'0'}}

标签: pythondictionary

解决方案


尝试这个

res = {x: dict(zip(variables, c * len(variables))) for x in assets}
print(res)

输出:

{'GOOG': {'LastTradePrice': '0', 'Spread': '0', 'QTD': '0'}, 'AMZN': {'LastTradePrice': '0', 'Spread': '0', 'QTD': '0'}}


推荐阅读