Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表中的嵌套dict复制到新dict_Python - Fatal编程技术网

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

Python 将列表中的嵌套dict复制到新dict,python,Python,列表中嵌套的dict如下所示: lista = [{stuff1: {key1: value1, key2: value2}}, {stuff2: {keya: valuea, keyb: valueb}}] 我如何将元素0从该列表中复制出来,以便它自己成为一个新的dict?它是否简单到:dicta={lista[0]} 这里的背景是,我使用enumerate向用户显示stuff键,让用户选择他想要使用的键。然后,他只需输入枚举索引为给定键显示的“数字”。因为我从索引=

列表中嵌套的dict如下所示:

 lista = [{stuff1: {key1: value1, key2: value2}},
          {stuff2: {keya: valuea, keyb: valueb}}] 
我如何将元素0从该列表中复制出来,以便它自己成为一个新的dict?它是否简单到:
dicta={lista[0]}

这里的背景是,我使用enumerate向用户显示stuff键,让用户选择他想要使用的键。然后,他只需输入枚举索引为给定键显示的“数字”。因为我从索引=1开始枚举,所以我从他输入的数字中减去1,这就给出了列表中与他需要的dict相对应的元素


我的想法是,现在我知道了用户想要的dict,我可以将该特定元素从lista移到一个新的dict中,以便进行进一步的操作。也许我想得太多了,还有另一种方法可以让lista保持原样,继续做我想做的事。

你可以使用
copy

dicta = list[0].copy()
演示

那么新的格言就是它自己的格言;修改它不会影响列表中的元素


如果您执行
dicta=list[0]
dicta
的任何修改都会修改列表;[由于它是一个
浅拷贝/参考拷贝
]

我不太理解您的描述,但请看一下
copy.deepcopy
。您的示例列表无效。否则:
lista
可能应该是一个“dict”列表,所以列表中的第一个元素应该已经是dict了。@ChristianKönig我已经更新了帖子。很抱歉,这很有效!我必须更新帖子,因为我在创建OP时错误地输入了dict,但你的解决方案仍然有效!因为这些是嵌套的dict,所以使用
copy.deepcopy()
>>> l
[{1: 'aaa'}, {2: 'b'}]
>>> a = l[0].copy()
>>> a[1] = 'xxx'
>>> a
{1: 'xxx'}
>>> l
[{1: 'aaa'}, {2: 'b'}]
>>>