【Python】Python3 List 列表复制

代码:

a = [1,2,3]
b = a
c = []
c = a
d = a[:]
a,b,c,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))
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 2782355356936
a,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 2782355356936
a,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 2782355356936
a,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 d的id值来看,a b c地址全一样,唯有d分配了新地址。
所以一般情况下想复制得到一个新列表并改变新列表内元素而不影响原列表,可以采用d的赋值方式。
这只是针对这种比较单一的普通列表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值