【Python】Python3 List 列表复制

来源:互联网 发布:黑猫警长细思极恐 知乎 编辑:程序博客网 时间:2024/06/08 03:35

代码:

a = [1,2,3]b = ac = []c = ad = a[:]a,b,c,dprint("a,b,c,d:",a,b,c,d)print("id(a),id(b),id(c),id(d):",id(a),id(b),id(c),id(d))b[0] = "b"print("a,b,c,d:",a,b,c,d)print("id(a),id(b),id(c),id(d):",id(a),id(b),id(c),id(d))c[0] = "c"print("a,b,c,d:",a,b,c,d)print("id(a),id(b),id(c),id(d):",id(a),id(b),id(c),id(d))d[0] = "d"print("a,b,c,d:",a,b,c,d)print("id(a),id(b),id(c),id(d):",id(a),id(b),id(c),id(d))

代码输出:

a,b,c,d: [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3]id(a),id(b),id(c),id(d): 2782355445192 2782355445192 2782355445192 2782355356936a,b,c,d: ['b', 2, 3] ['b', 2, 3] ['b', 2, 3] [1, 2, 3]id(a),id(b),id(c),id(d): 2782355445192 2782355445192 2782355445192 2782355356936a,b,c,d: ['c', 2, 3] ['c', 2, 3] ['c', 2, 3] [1, 2, 3]id(a),id(b),id(c),id(d): 2782355445192 2782355445192 2782355445192 2782355356936a,b,c,d: ['c', 2, 3] ['c', 2, 3] ['c', 2, 3] ['d', 2, 3]id(a),id(b),id(c),id(d): 2782355445192 2782355445192 2782355445192 2782355356936

可以看到a b c三个是同一id值,当改变当中任一列表元素的值后,三者会同步改变。
但d的元素值不会变,改变d的元素值其它三个变量内的元素值也不会变。
a b c did值来看,a b c地址全一样,唯有d分配了新地址。
所以一般情况下想复制得到一个新列表并改变新列表内元素而不影响原列表,可以采用d的赋值方式。
这只是针对这种比较单一的普通列表。

原创粉丝点击