python 复制列表
Posted Michealjobs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 复制列表相关的知识,希望对你有一定的参考价值。
python的变量仅仅是指向对象的标签,所以在操作列表的时候,list1 = list2这种做法只会复制一个标签,然后指向对象,并非生成一个新的对象。
大致有5中方法可以复制列表:
a = [1,2,3,[1]] b= a[:] c= list(a) d = a *1 e = copy.copy(a) f = copy.deepcopy(a)
再对a列表进行操作
a.append(12) a[3].append(12)
print id(a),a print id(b),b print id(c),c print id(d),d print id(e),e print id(f),f
各个复制方式的结果比较
41900952 [1, 2, 3, [1, 12], 12] 41899112 [1, 2, 3, [1, 12]] 41919792 [1, 2, 3, [1, 12]] 41889664 [1, 2, 3, [1, 12]] 41922192 [1, 2, 3, [1, 12]] 41900912 [1, 2, 3, [1]]
可以看出五个方式都可以复制列表,但是如果列表中含有子列表,b,c,d,e四个方式的子列表是指向a的对象上面,只有f方式是完全复制了一个新的列表
以上是关于python 复制列表的主要内容,如果未能解决你的问题,请参考以下文章
Python代码阅读(第13篇):检测列表中的元素是否都一样