Python中a和a[:]有什么区别?
生活随笔
收集整理的這篇文章主要介紹了
Python中a和a[:]有什么区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- []是引用 傳址調用
- [:] 是復制 傳值調用
發現用b=a[:], 再給b賦值, 不會影響a; 直接給a[:]賦值卻會影響a
a=5b=aprint(a,b)b=3print(a,b)a=6print(a,b)5 5 5 3 6 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[:]有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python下几种打开文件的方式
- 下一篇: python基础入门:内置函数之排列组合