我有两个字典,分别是“ I”和“ J”,我想在for循环上对其进行迭代,并获取一个变量的值,该变量是“ I”和“ J”的函数。
I={0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150}
J={-50,-40,-30,-20,-10,0,10,20,30,40}
F=[[0 for j in J] for i in I]
for i in I:
for j in J:
if i+j==100:
F[i][j]=-j*2.782490319
else:
F[i][j]="NA"
print(F[60][40])
我希望打印命令中的值取自字典“ I”和“ J”。例如,在上面的代码中,我写了print(F [60] [40]),因此60可以是字典'I'中的任何值,而40可以是字典'J'中的任何值。
我期望以上代码的答案为“ -111.29961276”,但是却出现错误“ IndexError:列表索引超出范围”。 如果有人可以回答这个查询,我会非常高兴。 TIA:)
答案 0 :(得分:3)
如上所述,I
和J
是集合,但是问题在于F
是列表。
尝试一下:
I={0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150}
J={-50,-40,-30,-20,-10,0,10,20,30,40}
F={(i,j):0 for j in J for i in I}
for i in I:
for j in J:
if i+j==100:
F[(i,j)]=-j*2.782490319
else:
F[(i,j)]="NA"
print(F[(60,40)])
我将F更改为键类型为(int, int)
的字典,就是这样...
输出:
-111.29961276