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()更是纹丝不动,像极了元组。。

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

全部评论

相关推荐

06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务