python 深浅拷贝

深拷贝 与 浅拷贝

a = 19
b = a
a = 20
print(b)

lst = [1,2,3]
lst2 = lst
lst.append(4)
print(lst)

(1) 浅拷贝 (只拷贝一级,其他的层级沿用以前的数据)

lst = [1,2,3]
# 方法一.列表.copy()
lst2 = lst.copy()
lst.append(5)
print(lst2)
print(lst)

# 方法二 . copy.copy(列表)
import copy
lst = [1,2,3]
'''copy 模块 . copy()方法'''
lst2 = copy.copy(lst)
lst.append(6)
print(lst2)

(2) 深拷贝 (所有层级,全部都拷贝一份,形成独立的副本)

# 深拷贝语法
lst = [1,2,3,[4,5,6]]
lst2 = copy.deepcopy(lst)
lst[-1].insert(1,888)
print(lst)
print(lst2)

# 深拷贝可以应用在字典中;
dic = {'a':1,'b':[1,2,3]}
dic2 = copy.deepcopy(dic)
dic['b'].append(4)
print(dic2)
# copy 和 deepcopy 谁更快? copy速度更快!
posted @ 2019-08-12 21:30  Kalimdor  阅读(145)  评论(0编辑  收藏  举报