Python数据类型 - 列表

本节来介绍Python列表,包含了列表索引、列表切片、附加或扩展列表等内容。

Python创建列表

你可以通过使用方括号[]来创建列表。 列表中的元素列在方括号内,并用逗号分隔开。 列表中的元素可以是不同的数据类型。

l = []		# 空列表
l = [2, 4, 6, 8]		# 列表元素数据类型一致
l = [2, 'Python', 1+2j]		# 元素数据类型不同

你也可以创建一个嵌套列表,即列表中的元素为列表。

l = [[2,4,5], 'python']

访问列表元素

以下是你可以访问列表元素的一些方式:

列表索引:

你可以使用索引来访问列表的元素,列表的索引从0开始。

>>> x = [2, 4, 6, 8, 10]
>>> print('x[0] =', x[0])			# 显示第一个元素
x[0] = 2
>>> print('x[0:2] =', x[0:2])		# 显示位于位置0和1的列表的前两个元素
x[0:2] = [2, 4]
>>> print('x[2:] =', x[2:])			# 显示位置2的元素(第三个元素)
x[2:] = [6, 8, 10]

列表中的元素可以被修改(更新、删除、添加),因为列表是可变类型的。 如果索引超出列表索引范围,则会出现IndexError

Warning
索引必须是一个整数,否则会出现TypeError

负索引

Python允许使用负索引来访问列表中的元素。 例如,索引-1指的是最后一个元素。 同样,索引-2指的是倒数第二项。

>>> l = [2, 4, 6, 8, 10]
>>> print(l[-1])
10
>>> print(l[-2])
8
>>> print(l[-3])
6

Python列表切片:

切片运算符用于从列表中提取一系列元素。

>>> l = [2, 4, 6, 8, 10]
>>> print(l[1:3])		# 打印从位置1到位置3(不含3)的元素
[4, 6]
>>> print(l[:2])		# 打印从开始到位置2(不含2)的元素
[2, 4]
>>> print(l[2:])		# 打印从位置2(包含2)开始的元素
[6, 8, 10]
>>> print(l[:])			# 打印整个列表
[2, 4, 6, 8, 10]

向列表增加元素

apend()方法

你可以使用列表方法append()将一个元素追加到列表的末尾。

>>> l = [1, 3, 5, 7, 9, 11]
>>> l.append(13)
>>> print(l)
[1, 3, 5, 7, 9, 11, 13]

extend()方法

append(x)x作为一个元素追加到列表中。 extend(x)将给定数据对象x中的所有元素来都添加到列表中。

>>> l = [1, 3, 5, 7, 9, 11]
>>> l.append([13, 14, 15])
>>> print(l)
[1, 3, 5, 7, 9, 11, [13, 14, 15]] # 列表[13, 14, 15]作为一个元素追加到列表l中
>>> l.extend([13, 14, 15])
>>> print(l)
[1, 3, 5, 7, 9, 11, 13, 14, 15]

+操作符

除了extend()方法,你还可以通过+操作符来连接两个列表。

>>> l = [2, 4, 6, 8, 10]
>>> print(l + [12, 14, 16])
[2, 4, 6, 8, 10, 12, 14, 16]

insert(i, x)

你可以使用insert(i, x)方法将元素x插入到列表索引位置i上。

>>> l = [2, 4, 6, 8, 10]
>>> l.insert(2, 0)
>>> print(l)
[2, 4, 0, 6, 8, 10]

从列表中删除元素:

del语句从列表中删除一个或多个元素。 你也可以使用del删除整个列表:

>>> l = [2, 4, 6, 8, 10]
>>> del l[4]
>>> print(l)
[2, 4, 6, 8]
>>> del l[0:2]
>>> print(l)
[6, 8]
>>> del l
>>> print(l)
Traceback (most recent call last):
    print(l)
NameError: name 'l' is not defined

在列表被del删除后,在程序中继续引用这个列表l将会收到报错。如果你想清除一个列表,那么你也可以使用clear()方法。

列表方法:

下表列出了具体的列表方法:

列表方法 描述
append() 将一个元素添加到列表的末尾
extend() 将多个元素添加到列表中。 将一个列表中的所有元素添加到另一个列表中
insert() 在所需位置添加一个元素
remove() 从列表中删除特定元素
pop() 删除列表中索引位置为index的元素,并返回该元素
clear() 从列表中删除所有元素
index() 返回列表中第一个匹配元素的索引
count() 返回列表中给定参数的数量
sort() 按升序排序列表中的元素
reverse() 颠倒列表元素的顺序
copy() 返回一个已经存在的列表的拷贝

列表成员检查

Python in关键字用来检查给定元素是否是列表的成员。

>>> l = [2, 4, 6, 8, 10]
>>> print(5 in l)
False
>>> print(2 in l)
True

Python遍历列表元素

你可以使用for循环来遍历一个列表。

l = [2, 4, 6, 8, 10]
for i in l:
    print(i)
2
4
6
8
10

适用于列表的内置函数

下表是适用于列表的一些可以来执行不同任务的内置函数的集合:

内置函数 描述
all() 当列表中的所有元素都为True时返回True。 当列表为空时,它也返回True
any() 当列表中的任何元素为True时返回True。 当列表为空时,它返回False
enumerate() 将列表的所有元素的索引和值作为元组返回。 它返回一个枚举对象
len() 返回列表中项目的数量或列表的长度
list() 将序列(元组,字符串,字典)转换为列表
max() 返回列表中的最大数字
min() 返回列表中的最小数字
sorted() 返回一个排序列表
sum() 返回列表中所有元素的总和