想要复制python变量的值而不是引用地址?
可以使用copy模块下面的deepcopy()函数,而不是copy哦,一不小心就掉坑里了
deepcopy()
函数用于创建一个深层副本。它会递归地复制对象及其内部的嵌套对象,确保每个对象都是独立的,修改副本中的任何对象都不会影响到原始对象。
import copy
# 创建一个列表
list1 = [1, 2, [3, 4]]
# 使用 deepcopy() 创建副本
list2 = copy.deepcopy(list1)
# 修改副本中的元素
list2[2][0] = 5
# 打印原始列表和副本
print(list1) # 输出: [1, 2, [3, 4]]
print(list2) # 输出: [1, 2, [5, 4]]
copy()
函数用于创建一个浅层副本。这意味着它会复制对象本身,但不会递归地复制对象内部的嵌套对象。修改副本中的嵌套对象将影响到原始对象
import copy
# 创建一个列表
list1 = [1, 2, [3, 4]]
# 使用 copy() 创建副本
list2 = copy.copy(list1)
# 修改副本中的元素
list2[2][0] = 5
# 打印原始列表和副本
print(list1) # 输出: [1, 2, [5, 4]]
print(list2) # 输出: [1, 2, [5, 4]]