欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

列表的+、+=、append、extend

程序员文章站 2024-01-06 14:03:04
...
 

一、+的用法

    python里,‘+’用于连接同类型的数据。
    下面的代码定义了列表a和c、元组b。
a = [1,2,3]
b = (4,5,6)
c = ['s','f']
d = a + b
e = a + c

     当我们执行d=a+b时,因为a和b不是同一类型数据,因此会产生以下错误,由此可以看出,‘+’只能用于连接同一类型的数据。

    d = a + b
TypeError: can only concatenate list (not "tuple") to list

    当我们执行e = a + c时,执行程序后,e的值为[1,2,3,'s','f']。

    同时,执行下面的代码发现程序输出[1,2,3,'s', 'f']。也就是a+c本身是有返回值的,返回的是连接的结果。
 
print(a+c)

  小结:python中‘+’只能用于连接同一类型的数据,以上述代码连接两个列表为例,执行的操作是迭代处理c中的元素,将其中的元素添加到e中

 

二、+=的用法

    程序代码如下:
a = [1,2,3]
b = (4,5,6)
c = ['s','f']
a += b
# a += c
# a += 5

    执行a+=b后,a的值变为[1,2,3,4,5,6];;执行a+=c后,a的值变为[1,2,3,'s','f'];而执行a+=5后,程序报错如下:

   a+=5
TypeError: 'int' object is not iterable
    我们发现,+=可以连接列表和元组,但是不能连接列表和int,原因在于列表和元组在python中都是可迭代对象,因此执行a+=b时,实际上是将遍历b中的元素,将它们添加到a中。
 

三、append的用法

    源码为  List.append(self, object):Append object to the end of the list。
     一切皆对象,传入的参数只要是一个对象就可以,数字、元组、字典、甚至是函数……都可以。
a = [1,2,3]
a.append(4)
a.append([5])
a.append((78,9))
a.append('str')
print(a)              #  [1, 2, 3, 4, [5], (78, 9), 'str', {'name': 'jack', 'age': 40}]
print(a.append(8))   # None

    小结:可以看出,对于列表a而言,

1、不管val是什么数据类型,执行a.append(val)后,都是将val作为一个列表的元素添加到列表最后;
2、a.append(val)本身是没有返回值的,注意和‘+’的区别
 

四、extend的用法

     源码为List.extend(self, iterable),即extend的对象必须是可以迭代的。
 
a = [1,2,3]
a.extend([4,5,6])
a.extend((7,8,9))
print(a)                # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a.extend([0,1]))   # None

 

 
 
    
 
 
 
相关标签: python python

上一篇:

下一篇: