python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...
這兩題涉及兩個概念:賦值過程中的淺復制 VS. 深復制
修改自身的操作 VS. 返回新值的操作
x 是個列表,用Python的話說,屬于引用類型,它本身是一個指向底層數據結構的引用,賦值給 y 時,傳遞的是這個引用,因此,y 和 x 等于共享了底層數據結構。我們把這種情況叫淺復制。
比如說,我們改一下 y 的值,x 的值也會受影響。y[0]=2
x
[2,2]
與之對應的是深復制,對于Python中的值類型,比如數值、字符串等,賦值的時候會直接復制一份底層數據,互相之間就不會受影響了。x=1
y=x
y=2
y
2
x
1
除了賦值過程,深復制與淺復制更需要注意的是函數傳參的過程。傳遞一個引用對象作為參數,有可能會在函數運算時改變原對象狀態,導致一些不好排查的bug。想要更詳細的了解,可以搜索相關關鍵詞。
第二個概念是修改自身的操作與返回新對象的操作。
同樣是擴展列表,這兩題結果不一樣,是因為 += 號是修改自身的操作,這個操作等于是在 y 后面新增了兩個元素,上面說過,x 和 y 在底層結構上是同一個,因此 x 就受影響了。
而另一題中,y=y+[3,4] 其實可以看成兩步,第一步是相加,得到一個新的列表 [1,2,3,4] ,第二步是把這個新列表賦值給 y,這個賦值過程,實際上是讓 y 指向了一個新的底層數據結構,和 x 指向的那個就區分開來了。
當然,需要指出的是,+= 其實也不是原子性的操作,不過這和這兩題沒什么關系,屬于比較深入的內容,暫時可以不用關注。
搜索資料的問題,第一步是打開搜索引擎,第二步是輸入關鍵詞。了解一些基本概念之后,就知道該輸入什么關鍵詞了,不用著急。
怎么了解一些基本概念呢?還是推薦看一兩本比較經典的書,所謂磨刀不誤砍柴工。怎么知道哪些書比較經典呢?參考上一段,這里就不推薦了。
祝順利!
總結
以上是生活随笔為你收集整理的python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python模拟登陆 验证码el_pyt
- 下一篇: 个人发卡网搭建源码_免费建设一个个人网站