id
什么是id
?一个对象的id
值在CPython
解释器里就代表它在内存中的`地址
# -*- coding:utf-8 -*-
import copy
a=[1,2,3,[4,5],[6,7,8]]
b = a
a[3][0]=4444
print(a,b)
‘‘’’
([1, 2, 3, [4444, 5], [6, 7, 8]], [1, 2, 3, [4444, 5], [6, 7, 8]])
‘‘’’
浅拷贝
当使用浅拷贝时,python
只是拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。看代码:
# -*- coding:utf-8 -*-
import copy
a=[1,2,3,[4,5],[6,7,8]]
c=copy.copy(a)
a[0]=1111
a[4][1]=7777
print(a,c)
''''
([1111, 2, 3, [4, 5], [6, 7777, 8]], [1, 2, 3, [4, 5], [6, 7777, 8]])
''''
深拷贝
deepcopy
对外围和内部元素都进行了拷贝对象本身,而不是对象的引用。
# -*- coding:utf-8 -*-
import copy
a=[1,2,3,[4,5],[6,7,8]]
d=copy.deepcopy(a)
a[0]= 1111
a[3][0]=4444
a[4][0]=6666
print(a,d)
''''
([1111, 2, 3, [4444, 5], [6666, 7, 8]], [1, 2, 3, [4, 5], [6, 7, 8]])
''''