我有以下代码:
dict_1= {
'key1':{'key1':[.56,.75], 'key2':[]},
'key2':{'key1':[.76,.95], 'key2':[]},
'key3':{'key1':[.96,1.05],'key_2':[]}
}
def zones_calc(ftp):
var_1 = ftp
for i in dict_1.iteritems():
for v in i['key_1']:
i[key_2.append(var_1 * v)]
zones_calc(200)
我一直有个错误:
TypeError: tuple indices must be integers, not str
我对用python编写代码还很陌生,我正在利用这个机会来使用字典。我使用列表和元组使它运行良好,而且运行良好。我试图利用dict来保持我的倍数和结果都在dict中
很明显,我要做的是将“key_1”中的内容相乘,并将其附加到每个dict键中的“key_2”中。你知道吗
任何帮助都会很好。你知道吗
首先,您使用
key_1
在字典中查找,而您的字典中没有任何具有key_1
值的键,您有多个key1
,所以我假设这就是您想要的。你知道吗其次,您想缩进
i[key_2.append(var_1 * v)]
,并将其更改为类似于value['key2'].append(var_1 * v)
:我再次假设您希望key2
作为字典中的键,而不是key_2
,并且您还想获取值,而不是对var\u1值进行乘法(不向列表的索引中添加任何内容,这没有任何意义)。你知道吗最后,当您在字典上进行迭代时,如果您不指定两个值,您的迭代上下文变量将是字典的键,如果您需要这些值,您将需要如下内容:
for key, value in dict_1.iteritems():
,而不是for i in dict_1.iteritems():
。你知道吗如果我正确理解了你想要什么,这可能是一个解决方案:
输出:
希望这有帮助。 请注意,我试图改变您的代码,以便工作,我没有试图使它更“pythonic”。你知道吗
希望这有帮助。:)
试试这个:
结果如下:
最后一行的小数部分是由于浮点舍入造成的:
相关问题 更多 >
编程相关推荐