跳到主要内容

Python 列表 List

列表(List)是一种有序序列,它是 Python 中非常常用的一种基本数据类型。但和其他语言的数组不同,Python 列表中的元素类型可以不同。比如,同一个列表中可以包含数字、字符串等多种数据类型。

序列中的每个元素都有一个相应的位置,或者说是索引,第一个索引是 0,第二个索引是 1,依此类推。所有序列都具有的操作有:索引、切片、加、乘,以及检查成员等等。此外,Python 内置的 len()max()min() 函数,可分别求取序列的长度以及确定最大和最小的元素。

创建与删除

列表使用方括号([])表示,使用逗号分隔各元素。例如:

list1 = [1, 2, 3, 4, 5, 6]
list2 = ['Python', 123, 7.25]

与字符串的索引一样,列表索引从 0 开始,列表可以进行截取、组合。例如:

>>> list1 = [1, 2, 3, 4, 5, 6]
>>> list1[1]
1
>>> list1[-1]
6
>>> list1[2:]
[3, 4, 5, 6]
>>> list2 = ['Python', 123, 7.25]
>>> list1 + list2
[1, 2, 3, 4, 5, 6, 'Python', 123, 7.25]

当我们不需要某个列表对象时,可以使用 del 语句删除其引用。例如:

del list1, list2

更新列表

Python 中的列表元素是可以任意修改的,常见的修改方法是使用下标索引对列表的数据项进行修改。

>>> p = ['PEK', 28, 'Li Bai']
>>> p[1]= 22
>>> p
['PEK', 22, 'Li Bai']

另外,也可以使用 append() 方法来添加列表项。例如:

>>> p = ['PEK', 28, 'Li Bai']
>>> p.append('Tsinghua')
>>> p
['PEK', 28, 'Li Bai', 'Tsinghua']
>>>

如果不需要某个列表元素,可以使用 del 语句来删除它。例如:

>>> p = ['PEK', 28, 'Li Bai', 'Tsinghua']
>>> del p[2]
>>> p
['PEK', 28, 'Tsinghua']
>>> del p[2]
>>> p
['PEK', 28]

列表操作符

Python 可以使用运算符 +* 操作列表,作用与字符串相似。其中,+ 符用于组合列表,* 符用于重复列表。

Python 表达式结果描述
len( [1, 3, 5] )3长度
[1, 3, 5] + [2, 4, 6][1, 2, 3, 4, 5, 6]组合
['Ys'] * 4['Ys', 'Ys', 'Ys', 'Ys']重复
3 in [1, 3, 5]True元素是否存在于列表中
for x in [1, 3, 5]: print (x)1 3 5迭代

嵌套列表

如果列表中的元素还是列表,那么就称为“嵌套列表”。例如:

>>> l1 = ['a', 'b', 'c']
>>> l2 = [1, 3, 5, 7]
>>> l = [l1, l2]
>>> l
[['a', 'b', 'c'], [1, 3, 5, 7]]
>>> l[0]
['a', 'b', 'c']
>>> l[0][1]
'b'

列表操作函数

下表列出可以应用于列表的 Python 内置函数。

函数描述
cmp(list1, list2)比较两个列表的元素
len(list)列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(seq)将元组转换为列表

列表成员方法

下表列出了 Python 列表的成员方法。

方法描述
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)将对象插入列表
list.pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反向列表中元素
list.sort(func)对原列表进行排序
list.clear()清空列表
list.copy()复制列表