本文主要介绍:深浅拷贝
注意:在python中有一种自己的优化机制,通常来说字符串在内存中的地址是不相同的,但是在python中,不管是深拷贝还是浅拷贝,只要是通过拷贝的字符串,两个地址是相同的
一、创建
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # author by lh 4 5 import copy 6 7 li = [[1, 2], 3, 4] 8 # 浅拷贝 9 li2 = li.copy() 10 li2[0][1] = 3 11 print(li) 12 print(li2) 13 14 # 深拷贝 15 li3 = copy.deepcopy(li) 16 li3[0][1] = 5 17 print(li3) 18 print(li)
二、内存中的实现代码:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # author by lh 4 5 import copy 6 n1=‘lh‘ 7 n2=copy.copy(n1) 8 n3=copy.deepcopy(n1) 9 print id(n1) 10 print id(n2) 11 print id(n3) 12 13 n4={‘k1‘:‘lh‘,‘n2‘:123,‘n3‘:4556} 14 n5=copy.copy(n4) 15 print id(n4) 16 print id(n5) 17 print id(n4[‘k1‘]) 18 print id(n5[‘k1‘])
时间: 2024-11-05 01:16:54