📅  最后修改于: 2023-12-03 15:04:38.597000             🧑  作者: Mango
在 Python 中,字典是一种非常常见的数据类型。字典是一个无序的键-值对集合,其中每个键都唯一。字典以花括号({})来表示,键与值之间用冒号(:)分隔,键-值对之间用逗号(,)分隔。
Python中的字典数据类型提供了一个方法“copy()”,用于复制一个现有字典。此方法创建一个新的字典,新字典与原始字典具有相同的键-值对。但是,将新的字典存储在新的变量中,并不会创建原始字典的副本。因此,更改一个字典不会影响另一个字典。下面是字典copy()的语法:
new_dict = old_dict.copy()
下面是字典copy()的示例代码:
old_dict = {"name": "Tom", "age": 18, "gender": "male"}
# 使用copy()方法创建一个新的字典
new_dict = old_dict.copy()
# 输出原始字典
print("原始字典为:", old_dict)
# 修改新字典
new_dict["name"] = "Alice"
# 输出修改后的新字典和原始字典
print("修改后的新字典为:", new_dict)
print("原始字典为:", old_dict)
输出结果为:
原始字典为: {'name': 'Tom', 'age': 18, 'gender': 'male'}
修改后的新字典为: {'name': 'Alice', 'age': 18, 'gender': 'male'}
原始字典为: {'name': 'Tom', 'age': 18, 'gender': 'male'}
可以看到,修改新字典并不会影响原始字典。
对于字典(或其他可变类型),copy()方法只会复制顶层的键和值,并不会复制嵌套的对象。如果需要在复制时同时复制嵌套的对象,可以使用深拷贝(deep copy)。
使用深拷贝需要导入Python中的“copy”模块,然后使用“deepcopy()”方法。下面是深拷贝的示例代码:
import copy
old_dict = {"name": "Tom", "age": 18, "gender": "male", "address": {"province": "Guangdong", "city": "Shenzhen"}}
# 使用deepcopy()方法创建一个新的字典
new_dict = copy.deepcopy(old_dict)
# 修改新字典
new_dict["name"] = "Alice"
new_dict["address"]["city"] = "Beijing"
# 输出修改后的新字典和原始字典
print("修改后的新字典为:", new_dict)
print("原始字典为:", old_dict)
输出结果为:
修改后的新字典为: {'name': 'Alice', 'age': 18, 'gender': 'male', 'address': {'province': 'Guangdong', 'city': 'Beijing'}}
原始字典为: {'name': 'Tom', 'age': 18, 'gender': 'male', 'address': {'province': 'Guangdong', 'city': 'Shenzhen'}}
可以看到,使用深拷贝复制嵌套的对象时,修改新字典中包含的嵌套对象并不会影响原始字典。