python中的3种复制

2019-02-21  本文已影响0人  学习是什么能吃吗

a赋值给b:

a = numpy.arange(8)

b = a

b.shape = 2,4

print(b)

print(a is b)

b[0,1] = 565

print (a)

print (b)

print (id(a))

print (id(b))

结果

在这里可以发现直接把a赋值给b,则a与b会指向同一个地址,同一个值。


a.view()赋值给b:

a = numpy.arange(8)

b = a.view()

b.shape = 2,4

print(a is b)

b[0,1] = 565

print (a)

print (b)

print (id(a))

print (id(b))

结果

把a.view()赋值给b可以看出来他们是指向不同的地址但是共用同一套值


a.copy()赋值给b:

a = numpy.arange(8)

b = a.copy()

b.shape = 2,4

print(a is b)

b[0,1] = 565

print (a)

print (b)

print (id(a))

print (id(b))

结果

用a.copy()赋值给b则他们指向的地址不同用的值也不同。

上一篇下一篇

猜你喜欢

热点阅读