浅和深的层次是不一样的,深可以决定浅,但是浅不一定能决定深,这是个包含的问题,但是大部分问题时候,不一定能用的上深,这就跟俗语说的是杀鸡焉用牛刀的感觉一样,因此,如果在一定的空间段,去判断选择使用哪个最合适呢?一起来看下吧!
需求:
将一个列表的数据复制到另一个列表中。
思路:
使用列表[:],拿不准可以调用copy模块。
直接看一个例子:
importcopy a=[1,2,3,4,['a','b']] b=a #赋值c=a[:]#浅拷贝d=copy.copy(a)#浅拷贝e=copy.deepcopy(a)#深拷贝#输出print('================a改变前================')print('a=',a)print('b=',b)print('c=',c)print('d=',d)print('e=',e) a.append(5) a[4].append('c')#输出print('================a改变后================')print('a=',a)print('b=',b)print('c=',c)print('d=',d)print('e=',e)
好啦,通过一组实例演示,大家可以弄清何时深拷贝,何时浅拷贝了吗?拷贝问题,主要对列表字典等可变对象操作引发,如果对列表字典进行拷贝,推荐使用深拷贝。