如何在不導入深度拷貝模塊的情況下創建字典的深層拷貝? 如:創建字典的深度拷貝而不導入副本
dict = {'A' : 'can' , 'B' : 'Flower' , 'C' : 'house'}
我已經試過指定鍵值,以2名不同的列表,然後創建這些值的新字典,但不起作用。有任何想法嗎?
如何在不導入深度拷貝模塊的情況下創建字典的深層拷貝? 如:創建字典的深度拷貝而不導入副本
dict = {'A' : 'can' , 'B' : 'Flower' , 'C' : 'house'}
我已經試過指定鍵值,以2名不同的列表,然後創建這些值的新字典,但不起作用。有任何想法嗎?
您可以使用字典解析:
>>> dict1 = {'A' : 'can' , 'B' : 'Flower' , 'C' : 'house'}
>>> dict2 = {key: value for key, value in dict1.items()}
>>> dict2
{'A': 'can', 'C': 'house', 'B': 'Flower'}
順便說一句,這個例子並不需要deepcopy
,因爲它沒有任何嵌套dict
秒。
除了回答Selcuk,你可以簡單地做:
dict1 = {'A': 'can', 'B': 'Flower', 'C': 'house'}
dict2 = {}
for key in dict1 :
dict2[key] = dict1[key]
然而,這個例子是非常瑣碎,如果你碰巧有對象而不是字符串,你必須你自己重新實現`deepcopy`函數。
看起來你使用的字符串是不可變的,因此不需要被複制。所以深拷貝可能並不比淺拷貝更有用。複製字典
的一種方法是使用它的複製方法:
my_dict = {'A' : 'can' , 'B' : 'Flower' , 'C' : 'house'}
another_dict = my_dict.copy()
另一種是把字典進入dict
構造:
my_dict = {'A' : 'can' , 'B' : 'Flower' , 'C' : 'house'}
another_dict = dict(my_dict)
你也可以使用字典理解,但是在很多字符中使用dict
構造函數實質上是一樣的。
爲什麼你不想導入'copy'? –
我想創建一個沒有導入的項目 –
@NicholasEvans我可以理解這一點,但這與Python哲學背道而馳。 –