在Python中,变量赋值与拷贝的方法有以下几种:
- 直接赋值:将一个变量的值赋给另一个变量,它们指向同一个内存地址。修改其中一个变量的值会影响到另一个变量。
a = 10
b = a
- 浅拷贝:创建一个新的变量,但是仍然指向原始对象的内存地址。修改原始对象中的可变元素会影响到拷贝的变量,但修改拷贝的变量不会影响到原始对象。
import copy
a = [1, 2, 3]
b = copy.copy(a)
- 深拷贝:创建一个新的变量,并且将原始对象中的所有元素都复制到新的变量中,包括嵌套对象。修改原始对象或拷贝的变量中的任何元素都不会相互影响。
import copy
a = [1, 2, [3, 4]]
b = copy.deepcopy(a)
- 切片赋值:对于可迭代对象(如列表、元组、字符串等),可以使用切片赋值来创建一个新的变量。切片赋值会创建一个新的对象,但仍然指向原始对象的内存地址。修改原始对象中的可变元素会影响到新的变量,但修改新的变量不会影响到原始对象。
a = [1, 2, 3]
b = a[:]