将列表中的嵌套dict复制到新的dict中

时间:2017-05-26 11:31:08

标签: python

列表中的嵌套字典如下所示:

 lista = [{stuff1: {key1: value1, key2: value2}},
          {stuff2: {keya: valuea, keyb: valueb}}] 

我如何从该列表中复制元素0,使其成为一个新的字典?它是如此简单:dicta = {lista[0]}

这里的背景是我使用枚举来向用户显示填充键,要求他选择他想要使用的东西。然后,他只需输入"数字"枚举索引显示给定键。因为我在index = 1处开始枚举,所以我从他输入的数字中减去1,这给了我列表中与他需要的字典相对应的元素。

我现在的想法是,我知道用户想要的字典,我可以将该特定元素从lista移到新的字典中,以便进一步操作。也许我正在思考它,还有另一种方法可以简单地将lista保留下来并仍然按照我的意愿行事。

1 个答案:

答案 0 :(得分:1)

您可以使用copy

dicta = list[0].copy()

演示

>>> l
[{1: 'aaa'}, {2: 'b'}]
>>> a = l[0].copy()
>>> a[1] = 'xxx'
>>> a
{1: 'xxx'}
>>> l
[{1: 'aaa'}, {2: 'b'}]
>>>

然后新的词典是它自己的词典;修改它不会影响列表中的元素

如果您执行dicta = list[0],则dicta的任何修改都会修改列表; [作为其shallow copy/reference copy]