具有整数与数组的深度复制 Python
Deep copy Python with integers vs arrays
给定以下代码:
x = y = z = 0
x = 10
print(y) // prints 0
x = y = z = [1, 2, 3, 4, 5]
x[0] = 10
print(y) // prints [10, 2, 3, 4, 5]
为什么简单整数 Python 不执行深度复制而数组却执行?
在第一个示例中,您有三个指针指向一个整数的内存位置。然后将其中一个指针 X 指向不同的内存位置。另外两个指针继续指向原来的整数。在第二个示例中,您有三个指向列表的指针。该列表是可变的。然后更改列表中的一项。三指针仍然指向同一个列表,检查其中任何一个的值将 return 相同的答案。
给定以下代码:
x = y = z = 0
x = 10
print(y) // prints 0
x = y = z = [1, 2, 3, 4, 5]
x[0] = 10
print(y) // prints [10, 2, 3, 4, 5]
为什么简单整数 Python 不执行深度复制而数组却执行?
在第一个示例中,您有三个指针指向一个整数的内存位置。然后将其中一个指针 X 指向不同的内存位置。另外两个指针继续指向原来的整数。在第二个示例中,您有三个指向列表的指针。该列表是可变的。然后更改列表中的一项。三指针仍然指向同一个列表,检查其中任何一个的值将 return 相同的答案。