我有以下代码,我想创建一个存储其他字典之间差异的字典。
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
这使allz
和allrx
成为dvarz
和dvarrx
的最后一个值。因此,allz
和allrx
会重复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] .. 。] ...]
答案 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}