📜  Python字典copy()(1)

📅  最后修改于: 2023-12-03 15:04:38.597000             🧑  作者: Mango

Python字典copy()

在 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'}

可以看到,修改新字典并不会影响原始字典。

深拷贝(deep copy)

对于字典(或其他可变类型),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'}}

可以看到,使用深拷贝复制嵌套的对象时,修改新字典中包含的嵌套对象并不会影响原始字典。