失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python中a和a[:]有什么区别?

Python中a和a[:]有什么区别?

时间:2021-03-01 23:09:04

相关推荐

Python中a和a[:]有什么区别?

[]是引用 传址调用[:] 是复制 传值调用

发现用b=a[:], 再给b赋值, 不会影响a; 直接给a[:]赋值却会影响a

a=5b=aprint(a,b)b=3print(a,b)a=6print(a,b)5 55 36 3c=[1,2,3,4]d=cprint(c,d)c[0]=5print(c,d)d[0]=6print(c,d)[1, 2, 3, 4] [1, 2, 3, 4][5, 2, 3, 4] [5, 2, 3, 4][6, 2, 3, 4] [6, 2, 3, 4]c=[1,2,3,4]d=c[:]print(c,d)c[0]=5print(c,d)d[0]=6print(c,d)[1, 2, 3, 4] [1, 2, 3, 4][5, 2, 3, 4] [1, 2, 3, 4][5, 2, 3, 4] [6, 2, 3, 4]c=[1,2,[1,2,3],3,4]d=c[:] # 没有限制条件的分片表达式(L[:])能够复制序列,但此法只能浅层复制; 在有嵌套情况跟着一起变化print(c,d)c[0]=5c[2][0]=7print(c,d)d[0]=6print(c,d)[1, 2, [1, 2, 3], 3, 4] [1, 2, [1, 2, 3], 3, 4][5, 2, [7, 2, 3], 3, 4] [1, 2, [7, 2, 3], 3, 4][5, 2, [7, 2, 3], 3, 4] [6, 2, [7, 2, 3], 3, 4]import copyc=[1,2,3,4]d=copy.deepcopy(c)print(c,d)c[0]=5print(c,d)d[0]=6print(c,d)[1, 2, 3, 4] [1, 2, 3, 4][5, 2, 3, 4] [1, 2, 3, 4][5, 2, 3, 4] [6, 2, 3, 4]a = [0, [1, 2], 3]b = a[:]a[0] = 8a[1][1] = 9print(a,b)[8, [1, 9], 3] [0, [1, 9], 3]

'''学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''import copya = [0, [1, 2], 3]b = copy.deepcopy(a)a[0] = 8a[1][1] = 9print(a,b)[8, [1, 9], 3] [0, [1, 2], 3]

如果觉得《Python中a和a[:]有什么区别?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。