嵌套for循环中字典值的字典

时间:2017-10-08 21:54:28

标签: python loops dictionary for-loop

我有以下代码,我想创建一个存储其他字典之间差异的字典。

for j in range(0,15):
    for k in range(0,15):
        dvarz[k] = vz[j] - vz[k]
        dvarrx[k] = vrx[j] - vrx[k]
    allz[j] = dvarz
    allrx[j] = dvarrx

这使allzallrx成为dvarzdvarrx的最后一个值。因此,allzallrx会重复15次相同的值。

很抱歉误会。这是一个更一般的情况,只有列表存在同样的问题。

a = [1, 2, 3]
b = [3, 4, 5]
c = {}
d = {}
for i in range(0,3):
    for j in range(0,3):
       c[j] = a[i] - b[j]
    d[i] = c

在这种情况下,我希望d为[[a [0] - b [0],a [0] - b [1] ...],[a [1] - b [0] .. 。] ...]

1 个答案:

答案 0 :(得分:3)

您可以动态创建新词典,使用词典理解更有效地存储其他词典的差异

a = {'a':1, 'b':2, 'c':3}

b = {'a':1, 'b':0, 'c':5}

diff = {x:a[x] - b[x] for x in a}