此问题已经在这里有了答案:
我正在尝试为给定的一组键创建一个有序的dic。我想要的结构是`
OrderedDict([('A', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
('C', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
('D', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])])`
这是通过以下功能创建的。
d = OrderedDict.fromkeys(键,[0表示范围(10)中的_]])>
我已成功获得所需的结构。
问题是dict的值都被创建为引用。当我尝试执行以下d['A'][1] = "11111"
时的含义它更改了每个给定键的值。我得到如下结果。
OrderedDict([('A', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('B', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('C', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('D', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0])])
我确实尝试过Deepcopy,但并没有真正帮助。我目前所处的工作是
d['A'] = d['A'][:]
我真的不喜欢上述解决方案,因为我大约有
6mil keys and values
..因此这样做有点麻烦。
我想知道一种更好的方法,以及为什么会这样。
我正在尝试为给定的一组键创建一个有序的dic。我要使用的结构是`OrderedDict([('A',[0,0,0,0,0,0,0,0,0,0])),('B',[0,0,0 ,0,0,0,0,0,...
分类方法fromkeys
对所有字典键使用相同