Python中'+='和extend的区别
Python中'+='和extend的区别
最近在使用python写代码时,经常会将一些代码包装在函数中,但在函数中使用全局变量中的List时,发现有时候有"Unresolved reference 'xxxxx' "的问题,查询文档后发现是以下问题
首先说一下python传参的问题
python的基本类型中,数字,str,list,turple,dict,set
其中:
- 数字,str,turple是不可变的
- list,dict,set是可变的,意味着可以在函数内允许修改值
python传入函数的是变量的副本,如果在内部把堆区的值改变了,则原变量也会变,但若把参数的引用改变,副本会指向新的内粗怒,原变量不会变
- '+=' 扩展List
'+=' 运算同'+'运算一样,是对两个类型相同的变量之间的运算,并不会改变之前原有的变量,并返回一个新的值,改变了此全局变量的引用,所以在函数中使用会出现此问题 - append() 方法
append()方法是在将参数作为一个元素添加到该变量中l1=[1,2,3] l2=[4,5,6] l1.append(l2) # l1=[1,2,3,[4,5,6]]
- 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]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步