美文网首页大数据 爬虫Python AI Sql
python中append 、+ 和extend的区别

python中append 、+ 和extend的区别

作者: dpengwang | 来源:发表于2018-05-18 16:26 被阅读0次
    当我我们在使用List的扩展操作时候,常常会用到append方法和+运算符,不注意他们之间的区别常常会导致错误,下面举例说明他们的错误

    1)append:

    s1 = [1,2,3]
    s2 = [4]
    s1.append(s2)
    s1.append({'1':'2'})
    print(s1)
    

    输出如下

    [1,2,3,[4],{'1':'2'}]
    
    1. 使用append相当把整个s2当做List中的元素的内容,相当于把[s2]添加到了s1中。如果用print(s1.append(s2))输出的为None;用test =s1.append(s2)在print(s2)得到还是None,因为append操作是在原List上的修改,不会返回一个新的值
    2. append 操作可以向List中添加任何元素,比如字典,不过字典整体作为List中的一个元素(比如上面字典的{})

    2)+运算:

    s1 = [1,2,3]
    s2 = [4]
    print(s1+s2)
    

    结果如下

    [1,2,3,4]
    

    +运算是对于两个类型相同的变量之间的运算,不改变原有的变量,并返回一个新的值,是内容之间的拼接

    3)extend:

    s1 = [1,2,3]
    s2 = [4]
    s1.extend(s2)
    print(s1)
    s3 = 'abc'
    s1.extend(s3))
    print(s1)
    s4 = {'age':12,'height':180}
    s1.extend(s4)
    print(s1)
    

    输出如下:

    [1, 2, 3, 4]
    [1, 2, 3, 4, 'a', 'b', 'c']
    [1, 2, 3, 4, 'a', 'b', 'c', 'height', 'age']
    
    

    extend 也是在原有List上进行修改,没有返回值,可以扩展不同类型的变量,并将其内容以List变量的形式加入到原List中。
    从输出中可见如果extend的是字符串,则字符串会被拆分成字符数组,如果extend的是字典,则字典的key会被加入到List中

    相关文章

      网友评论

        本文标题:python中append 、+ 和extend的区别

        本文链接:https://www.haomeiwen.com/subject/xgwgdftx.html