Python 数据类型 - 列表
Jinku Hu
2023年1月30日
本节来介绍 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() |
返回列表中所有元素的总和 |