about python

赋值不可变对象时,(如:整数、元组等),赋值的是这个值的新引用,例如:当你创建一个新的整数变量时,python实际上为那个整数值创建了一个引用。

而对于可变对象(列表、字典、集合等),则是对同一个对象创建了引用,浅拷贝也是如此,例如:

1
2
3
4
5
i={"name":"jim"} #创建这样一个字典
a=i #赋值给a
a["name"]="jack" #修改a的字典
print(i)
#结果:{"name":"jack"}

如想对可变对象拷贝一个完全独立的变量可采用深拷贝:

1
2
3
4
5
6
import copy
original_list = [[1,2],[3,4]]
copy_list = copy.deepcopy(original_list)
copy_list[0][1] = 'a'
print(original_list)
#结果:[[1,2],[3,4]]