Python 数据类型 - 列表

Jinku Hu 2023年1月30日
  1. Python 创建列表
  2. 访问列表元素
  3. 向列表增加元素
  4. 从列表中删除元素
  5. 列表方法
  6. 列表成员检查
  7. Python 遍历列表元素
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() 返回列表中所有元素的总和
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook