Python复制或克隆defaultdict变量

so1*_*eit 4 python dictionary copy python-2.7 defaultdict

如何在Python的defaultdict对象中创建一个副本(不只是为内存中的同一位置指定一个新指针)?

from collections import defaultdict
itemsChosen = defaultdict(list)    
itemsChosen[1].append(1)
dupChosen = itemsChosen
itemsChosen[2].append(1)
print dupChosen
Run Code Online (Sandbox Code Playgroud)

上面的代码是浅层复制并返回

defaultdict(<type 'list'>, {1: [1], 2: [1]})
Run Code Online (Sandbox Code Playgroud)

而我正在寻找它返回

defaultdict(<type 'list'>, {1: [1]})
Run Code Online (Sandbox Code Playgroud)

谢谢.

Bos*_*ash 7

使用副本:

from copy import copy

dupChosen = copy(itemsChosen)
Run Code Online (Sandbox Code Playgroud)

在多次嵌套的情况下,还有深度复制.

  • 多么Pythonic!一旦允许,我会接受答案,谢谢。 (2认同)