我在 Python 字典中看到一些不寻常的行为:
import numpy as np
td =[np.Inf, 2, 3]
a = {}
# First initialize contents of dictionary to a list of values
for k in range(10):
a[k] = td
# now I want to access the contents to modify them based on certain criteria
for k in range(10):
c = a[k]
c[0] = k
a[k] = c
由此,我希望每个字典键值的列表的每个第一项都基于 ( c[0] = k
) 进行更改,但是,我最后得到的是字典的所有值都更新为 的最后一个值k
,如下所示:
{0: [9, 2, 3], 1: [9, 2, 3], 2: [9, 2, 3], 3: [9, 2, 3],
4: [9, 2, 3], 5: [9, 2, 3], 6: [9, 2, 3], 7: [9, 2, 3],
8: [9, 2, 3], 9: [9, 2, 3]}
我错过了什么,还是字典定义有问题?
我可以以不同的方式解决这个问题,让我的代码运行,但我对字典类为什么会这样表现感兴趣。