Python中'+='和extend的區別


Python中'+='和extend的區別

最近在使用python寫代碼時,經常會將一些代碼包裝在函數中,但在函數中使用全局變量中的List時,發現有時候有"Unresolved reference 'xxxxx' "的問題,查詢文檔后發現是以下問題
首先說一下python傳參的問題
python的基本類型中,數字,str,list,turple,dict,set
其中:

  • 數字,str,turple是不可變的
  • list,dict,set是可變的,意味着可以在函數內允許修改值
    python傳入函數的是變量的副本,如果在內部把堆區的值改變了,則原變量也會變,但若把參數的引用改變,副本會指向新的內粗怒,原變量不會變
  1. '+=' 擴展List
    '+=' 運算同'+'運算一樣,是對兩個類型相同的變量之間的運算,並不會改變之前原有的變量,並返回一個新的值,改變了此全局變量的引用,所以在函數中使用會出現此問題
  2. append() 方法
    append()方法是在將參數作為一個元素添加到該變量中
    l1=[1,2,3]
    l2=[4,5,6]
    l1.append(l2)
    # l1=[1,2,3,[4,5,6]]
    
  3. extend() 方法
    extend()方法是將參數中的每個元素使用迭代器append到原變量中
    Extend list by appending elements from the iterable.
    l1=[1,2,3]
    l2=[4,5,6]
    l1.extend(l2)
    # l1=[1,2,3,4,5,6]
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM