如何在for循环中遍历多个词典?

时间:2019-06-25 11:38:29

标签: python-3.x

我有两个字典,分别是“ 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:)

1 个答案:

答案 0 :(得分:3)

如上所述,IJ是集合,但是问题在于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