用户工具


浅拷贝

之拷贝对象本身。如果对象内容中还有列表,集合等元素;列表,集合还是会共享。

import copy
a=['fang',[1,2]]
b=copy.copy(a)
print id(a),id(b)
print a,b
a[0]='qiang'    
a[1][1]=9
print a,b

结果:
140683666530104 140683666714992
['fang', [1, 2]] ['fang', [1, 2]]
['qiang', [1, 9]] ['fang', [1, 9]] #内部的列表依然是共享的

深拷贝

之拷贝对象本身和它内部所有的列表,集合等元素

import copy
a=['fang',[1,2]]
b=copy.deepcopy(a)
print id(a),id(b)
print a,b
a[0]='qiang'
a[1][1]=9
print a,b

结果:
140707033386808 140707033571696
['fang', [1, 2]] ['fang', [1, 2]]
['qiang', [1, 9]] ['fang', [1, 2]]