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

Python 嵌套for循环中字典值的字典,python,loops,dictionary,for-loop,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 这使得allz和allrx成为dvarz和dvarrx的最后值。因此,allz和allrx成为重复15次的相同值 对不起,

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

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].].]

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

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

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

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

你的问题是什么?你能给出一个更有用的名字吗?你希望它们包含什么?你只是在做一个参考副本,所以看看你得到的结果是有意义的。如果您只想在该迭代中存储这些列表的值,那么您需要使用
x[j]=y.copy()
创建一个浅拷贝,也许您需要
allz[j]=dvarz.copy()
allrx[j]=dvarrx.copy()