Python 如何将列表转换为嵌套dict?
我正试图根据下面的列表创建一个嵌套的dictsPython 如何将列表转换为嵌套dict?,python,dictionary,Python,Dictionary,我正试图根据下面的列表创建一个嵌套的dicts assets = ["GOOG", "AMZN"] variables=['LastTradePrice','Spread','QTD'] c = ['0'] 我尝试了下面的代码,但它缺少一些信息,导致了一个简短的dict,只有一个资产和一个变量,我期望2个资产作为“主键”,3个变量作为“子键”,每个“子键”后面都有0作为值 尝试了此代码: dct = {x: {str(y): str(z)} for
assets = ["GOOG", "AMZN"]
variables=['LastTradePrice','Spread','QTD']
c = ['0']
我尝试了下面的代码,但它缺少一些信息,导致了一个简短的dict,只有一个资产和一个变量,我期望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'}}
我得到的结果:
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'}}
预期结果:
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'}}
试试这个
res = {x: dict(zip(variables, c * len(variables))) for x in assets}
print(res)
输出:
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'}}
{k:{v:c[0]表示变量中的v}表示资产中的k}
您是否愿意解释为什么它是错误的,以及您更改了什么?出于学习目的。因为zip(资产、变量、c)
。只需打印列表(zip(资产、变量、c))
您就会看到。只有当所有资产
、变量
和c
长度相同时,您的代码才会工作