python每日练习—2020.2.21

【问题描述】 将一个列表的数据复制到另一个列表中。
【程序分析】: 使用列表[:],调用copy模块。

import copy
a = [1,2,3,4,['a','b']]
b = a
c = a[:]
d = copy.copy(a)
e = copy.deepcopy(a)

a.append(5)
a[4].append('c')

print('a = ',a)
print('b = ',b)
print('c = ',c)
print('d = ',d)
print('e = ',e)
a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c =  [1, 2, 3, 4, ['a', 'b', 'c']]
d =  [1, 2, 3, 4, ['a', 'b', 'c']]
e =  [1, 2, 3, 4, ['a', 'b']]

有没有感到很神奇,在我看到这段代码的时候要也感到很神奇。

我们都知道b = a是赋值操作,所以b的值永远会和a的值相同,但是[ : ]以及copy( )不会在操作a[4].append('c')后修改掉本身的值,而deepcopy()更是纹丝不动,像极了元组。。

如果有谁能够解释这一现象,请告诉小编,在此予以感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arik (IoT)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值