正在将列表理解传递给有序词典创建作为参考[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我正在尝试为给定的一组键创建一个有序的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,...

python python-3.x list dictionary ordereddictionary
1个回答
0
投票

分类方法fromkeys对所有字典键使用相同

© www.soinside.com 2019 - 2024. All rights reserved.