码迷,mamicode.com
首页 > 编程语言 > 详细

python 复制列表

时间:2018-07-03 15:01:59      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:append   app   copy   python   方法   五个   epc   list   操作   

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 复制列表

标签:append   app   copy   python   方法   五个   epc   list   操作   

原文地址:https://www.cnblogs.com/michealLang/p/9257859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!