python的浅复制,深复制

1.a = b是将b的id复制给b,然后a与b指向同一个对象

1 import numpy as np
2 
3 a = np.arange(5)
4 print(a)
5 b = a
6 print(id(a))
7 print(id(b))

可以通过下图的运行结果看到,a的id与b的id相等,指向的同一个物体。

 

2. b = a.view() 是浅复制,b和a是不同的对象,但是他们的元素是共享的

1 import numpy as np
2 
3 a = np.arange(5)
4 print(a)
5 b = a.view()
6 print(id(a))
7 print(id(b))
8 b[0] = -1
9 print(a)

通过下图运行结果可以看到,a和b是不同的对象,但是当我改变a的元素的时候,b的元素也发生了改变。‘

 

3.b = a.copy()是深复制,b中的元素是a中的副本

posted @ 2019-08-03 11:31  地球上最后一个直男  阅读(181)  评论(0编辑  收藏  举报