首页 > 编程语言 > 详细

深浅拷贝 python

时间:2021-01-18 19:47:05      阅读:33      评论:0      收藏:0      [点我收藏+]
 1 #深浅拷贝
 2  #浅拷贝1   1、直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变。
 3 
 4 li1 =[1, 2, 3]
 5 li2 = li1.copy()
 6 li1.append(4)
 7 print(f‘li1:{li1}, id:{id(li1)}‘)
 8 print(f‘li2:{li2}, id:{id(li2)}‘)
 9 print(‘*‘ * 100)
10 
11  #浅拷贝2  (只拷贝最边一层) 2、copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变。
12 l1 =[1, 2, 3, []]
13 l2 = l1.copy()
14 
15 l1[-1].append(‘a‘)
16 l1.append(4)
17 
18 print(f‘id of l1:{id(l1)}, id of l2:{id(l2)}‘)
19 print(f‘l1:{l1}, id:{id(l1[-1])}‘)
20 print(f‘l2:{l2}, id:{id(l2[-1])}‘)
21 print(‘*‘ * 100)
22 
23 #深拷贝  (无论多少层 都能拷贝出来)   3、深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变。
24 
25 import copy
26 list1 =[1, 2, 3, []]
27 list2 = copy.deepcopy(list1)
28 list1[-1].append(‘拷贝‘)
29 print(f‘list1:{list1}, id:{id(list1[-1])}‘)
30 print(f‘list2:{list2}, id:{id(list2[-1])}‘)

 

深浅拷贝 python

原文:https://www.cnblogs.com/z20010906/p/14293585.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!