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

posted @ 2018-05-27 10:54  sbj123456789  阅读(5870)  评论(0编辑  收藏  举报