深浅拷贝

眉间皱痕 提交于 2020-03-21 11:35:48
浅拷贝:  只拷贝第一层元素     计算机在找值得过程深拷贝   不可变数据类型共用一个内容,可变数据类型重新开辟空间存放内容import copy模块

浅拷贝

import copy
li = [1,2,3,4]
lst = li.copy()
print(li)
print(lst)

print(id(li))   # 34512776
print(id(lst))  # 34512840

li[0] = 56
print(li)   # 变
print(lst)  # 不变
print(id(li[0]))  # 1548382960print(id(lst[0])) # 1548381200print(id(li[1]))  # 1548381232print(id(lst[1])) # 1548381232
 

 

 

深拷贝

import copy
li = [1,2,3,4,[5,6,7]]
lst = copy.deepcopy(li)   # 深拷贝
# 浅拷贝只拷贝第一层元素,元素是不可变的,就不会变 元素是可变的俩个同时变
print(li)
print(lst)
print(id(li))      # 40289984
print(id(lst))     # 40305368

li[-1].append(90)
print(li)   # 变
print(lst)  # 不变
#
print(id(li[-1]))  #38783856
print(id(lst[-1])) #38798000

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!