📅  最后修改于: 2023-12-03 14:46:14.797000             🧑  作者: Mango
在Python中,复制一个字典可以通过两种方式:浅复制和深复制。
浅复制会创建一个新字典,其中的元素和原始字典相同,但是元素的引用仍指向原始字典中的对象。这意味着如果我们修改复制的字典中的一个元素,它也会影响原始字典中相应元素的值。
代码示例:
original_dict = {'a': 1, 'b': 2, 'c': {'d': 3}}
new_dict = original_dict.copy()
new_dict['a'] = 5
new_dict['c']['d'] = 4
print('Original Dictionary:', original_dict)
print('New Dictionary:', new_dict)
输出结果:
Original Dictionary: {'a': 1, 'b': 2, 'c': {'d': 4}}
New Dictionary: {'a': 5, 'b': 2, 'c': {'d': 4}}
在这个示例中,我们在新字典中修改了'a'的值和'c'字典中的'd'值。因此,新字典和原始字典都会反映这些更改。
深复制会创建一个新字典,其中的元素和原始字典相同,但是元素的引用都指向新创建的对象。这意味着对复制字典中的元素进行的任何更改都不会影响原始字典中相应元素的值。
代码示例:
import copy
original_dict = {'a': 1, 'b': 2, 'c': {'d': 3}}
new_dict = copy.deepcopy(original_dict)
new_dict['a'] = 5
new_dict['c']['d'] = 4
print('Original Dictionary:', original_dict)
print('New Dictionary:', new_dict)
输出结果:
Original Dictionary: {'a': 1, 'b': 2, 'c': {'d': 3}}
New Dictionary: {'a': 5, 'b': 2, 'c': {'d': 4}}
在这个示例中,我们在新字典中修改了'a'的值和'c'字典中的'd'值。但是这些更改不会影响原始字典中相应元素的值。
在Python中,复制字典的方式可以分为浅复制和深复制。浅复制复制的新字典中的元素的引用指向原始字典中的对象,因此在对其进行更改时可能会影响原始字典中相应元素的值。深复制则创建了一个新字典,并将其中元素的引用都指向新创建的对象,因此复制字典进行的任何更改都不会影响原始字典中相应元素的值。