我正在尝试为给定的键集创建有序的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
..因此这样做有点麻烦。
我想知道一种更好的方法,以及为什么会这样。
答案 0 :(得分:2)