字典的深拷贝和浅拷贝
时间: 2023-10-17 21:25:52 浏览: 96
字典的深拷贝和浅拷贝是对字典对象进行复制的两种不同方式。
浅拷贝是创建一个新的字典对象,但是其中的键和值仍然是原始字典中的引用。也就是说,当你修改原始字典中的值时,拷贝的字典中的值也会随之改变。你可以使用`copy()`方法来进行浅拷贝,或者使用`{}`来创建一个新的字典对象。
深拷贝是创建一个完全独立的字典对象,其中的键和值都是新创建的对象,而不是原始字典中的引用。因此,修改原始字典中的值不会影响深拷贝的字典。你可以使用`copy.deepcopy()`方法来进行深拷贝。
下面是一个示例,以帮助更好理解深拷贝和浅拷贝之间的区别:
```
import copy
original_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 浅拷贝
shallow_copy = original_dict.copy()
shallow_copy['age'] = 35
print(original_dict) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
print(shallow_copy) # 输出: {'name': 'John', 'age': 35, 'city': 'New York'}
# 深拷贝
deep_copy = copy.deepcopy(original_dict)
deep_copy['age'] = 40
print(original_dict) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
print(deep_copy) # 输出: {'name': 'John', 'age': 40, 'city': 'New York'}
```
在上面的示例中,修改浅拷贝的字典会影响原始字典,而修改深拷贝的字典不会影响原始字典。
阅读全文