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

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

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务