1. 复制和查看
在操作和处理数组时,其数据有时会被复制到一个新的数组中,有时则不会。
1.1 不复制
简单的赋值操作不会复制对象或其数据
Python 将可变对象作为引用传递,因此函数调用不会进行复制操作。
1.2 视图方法和浅拷贝
不同的数组对象可以共享相同的数据。view方法会创建一个新的数组对象,新数组和原数组共享数据。
1.3 深拷贝
copy方法会完整复制数组及其数据
有时,如果不再需要原始数组,那么copy操作就应当通过切片来实现。例如,假设变量 a 是一个巨大的中间结果,而最终结果 b 只包含 a 的一小部分内容,那么在构建 b 时应当使用切片来进行深复制。
如果使用 b = a[:100] 这种方式,而不是深拷贝,那么 a 就会被 b 引用,即便执行了 del a 这样的语句,a 也会保留在内存中。