19. python 浅复制和深复制

1.

a = [1,2,3]
b = a

id(a) // 输出a指向的内存id

改变a,或改变b的值,另一个跟着改变

2. deep 浅复制

import copy
a = [1,2,[3,4]]
b = copy.copy(a)

b[0] = 5
print(a)
print(b)

#a:[1, 2, [3, 4]]
#b:[5, 2, [3, 4]]

b[2][0] = 8

print(a)
print(b)

#a:[1, 2, [8, 4]]
#b:[5, 2, [8, 4]]

 a 和 b 的id已经不同,只拷贝父对象,不会拷贝对象的内部的子对象

3. deepcopy 深复制

import copy
a = [1,2,[3,4]]
b = copy.deepcopy(a)

递归拷贝对象及其子对象

posted @ 2017-03-18 13:32  涵叔  阅读(94)  评论(0编辑  收藏  举报