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]
    
posted @   流光之中  阅读(1021)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 起风了 买辣椒也用券
起风了 - 买辣椒也用券
00:00 / 00:00
An audio error has occurred.