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