Python赋值给另一个变量且不改变原变量
在Python中,如果你想将一个变量的值赋给另一个变量,同时保持原变量不变,你可以使用复制(copy)而不是引用(reference)。Python中的变量通常是通过引用(reference)来传递的,这意味着当你将一个变量的值赋给另一个变量时,实际上你是在将两个变量指向同一个对象。
但如果你想要一个完全独立的副本,你需要使用深复制(deep copy)或浅复制(shallow copy)。深复制会创建一个新的对象,并且复制所有子对象,而浅复制只会创建一个新的对象,但子对象仍然是指向原始对象的引用。
以下是如何使用深复制和浅复制的例子:
python
import copy
# 原始变量
original = [1, 2, [3, 4]]
# 深复制
deep_copy = copy.deepcopy(original)
# 修改原变量
original[2][0] = 5
# 打印原变量和深复制的变量,可以看到原变量的改变没有影响到深复制的变量
print(original) # 输出: [1, 2, [5, 4]]
print(deep_copy) # 输出: [1, 2, [3, 4]]
# 浅复制
shallow_copy = copy.copy(original)
# 修改原变量
original[2][0] = 5
# 打印原变量和浅复制的变量,可以看到原变量的改变也影响到了浅复制的变量
print(original) # 输出: [1, 2, [5, 4]]
print(shallow_copy) # 输出: [1, 2, [5, 4]]
在这个例子中,我们使用了copy.deepcopy进行深复制,和copy.copy进行浅复制。如果你只希望改变赋值的变量而不改变原始变量,你应该使用深复制。