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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM