python中数组(list/array)不会复制,而是直接引用
对于单个变量,如:
将数据直接赋值进行复制后,变量前后独立,是位于两块空间内的。
但对于数组(list 或 numpy.array):
相当于引用,是位于同一块空间内的
复制list的五种方法:
1. a[:]
2. list(a)
3. a*1
4. copy.copy(a)
5. copy.deepcopy(a)
从以上可以看出,使用 a[:], list(a), a*1, copy.copy(a)四种方式复制列表结果都可以得到一个新的列表,但是如果列表中含有列表,所有b, c, d, e四个新列表的子列表都是指引到同一个对象上。只有使用copy.deepcopy(a)方法得到的新列表f才是包括子列表在内的完全复制。
参考:
https://www.cnblogs.com/ifantastic/p/3811145.html