在Python中,列表(list)是一种非常常见且强大的数据结构。列表是一个有序的集合,可以随时添加和删除其中的元素。
创建列表
你可以使用方括号[]来创建一个列表,列表中的元素用逗号(,)分隔。
# 创建一个包含一些整数的列表
numbers = [1, 2, 3, 4, 5]# 创建一个包含字符串的列表
fruits = ["apple", "banana", "cherry"]# 创建一个混合类型的列表
mixed = [1, "hello", 3.14, True]
访问列表元素
你可以通过索引来访问列表中的元素,索引从0开始,跟字符串的使用一样。
# 访问第一个元素
>>> numbers[0]
1# 访问最后一个元素
>>> numbers[-1]
5
修改列表元素
你可以通过索引来修改列表中的元素。
# 修改第一个元素
>>> numbers[0] = 10>>> numbers
[10, 2, 3, 4, 5]# 修改最后一个元素
>>> numbers[-1] = 9>>> numbers
[10, 2, 3, 4, 9]
添加元素到列表
你可以使用append()方法在列表末尾添加元素,或者使用insert()方法在指定位置插入元素。
# 在列表末尾添加元素8
>>> numbers.append(8)>>> numbers
[10, 2, 3, 4, 9, 8]# 在指定位置1插入元素7
>>> numbers.insert(1, 7)>>> numbers
[10, 7, 2, 3, 4, 9, 8]
删除列表元素
你可以使用remove()方法删除指定值的第一个匹配项,或者使用pop()方法删除并返回指定索引处的元素(如果不指定索引,则默认删除并返回最后一个元素)。此外,你还可以使用del语句删除指定索引处的元素。
# 删除指定元素8
>>> numbers.remove(3)
>>> numbers
[10, 7, 2, 4, 9, 8]# 删除并返回最后一个元素
>>> numbers.pop()
8
>>> numbers
[10, 7, 2, 4, 9]# 使用del语句删除指定索引处的元素
>>> del numbers[1]
>>> numbers
[10, 2, 4, 9]
列表脚本操作符
列表对+
和*
的操作符与字符串相似。+
号用于组合列表,*
号用于重复列表。
>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]>>> 3 in [1, 2, 3]
True
列表的截取与拼接
Python的列表截取与字符串操作类似。
>>> numbers
[10, 2, 4, 9]>>> numbers[:]
[10, 2, 4, 9]# 输出从第二个元素开始后的所有元素
>>> numbers[1:]
[2, 4, 9]# 输出从第二个元素到第4个元素之前的所有元素
>>> numbers[1:3]
[2, 4]# 输出从第二个元素到最后一个元素之前的所有元素
>>> numbers[1:-1]
[2, 4]
列表还支持拼接操作:
>>> a = [1, 3, 5]>>> a += [2, 4 ,6]>>> a
[1, 3, 5, 2, 4, 6]
嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
>>> a = ["a", "b", "c"]>>> n = [1, 2, 3]>>> x = [a, n]>>> x
[['a', 'b', 'c'], [1, 2, 3]]>>> x[0]
['a', 'b', 'c']>>> x[1][0]
1
列表的比较
列表比较需要引入operator模块的eq方法。
# 导入operator模块
>>> import operator>>> a = [1, 2]>>> b = [2, 3]>>> c = [2, 3]>>> operator.eq(a, b)
False>>> operator.eq(b, c)
True
列表的遍历
你可以使用for循环来遍历列表中的元素。
# 遍历列表并打印每个元素
>>> for n in numbers:
... print(n)
...
10
2
4
9
列表推导式
列表推导式是一种简洁的构建列表的方法。
# 创建一个包含0到9的平方的列表
>>> squares = [x**2 for x in range(10)]>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
列表的常用方法
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
>>> numbers
[10, 2, 4, 9]>>> numbers.extend([3, 4, 8])>>> numbers
[10, 2, 4, 9, 3, 4, 8]
list.count(obj):统计某个元素在列表中出现的次数
>>> numbers.count(4)
2
list.index(obj):从列表中找出某个值第一个匹配项的索引位置
>>> numbers.index(4)
2
list.reverse():反向列表中元素
>>> numbers
[10, 2, 4, 9, 3, 4, 8]>>> numbers.reverse()>>> numbers
[8, 4, 3, 9, 4, 2, 10]
list.sort(key=None, reverse=False):对原列表进行排序
>>> numbers.sort()>>> numbers
[2, 3, 4, 4, 8, 9, 10]
list.copy():复制列表
>>> numbers.copy()
[2, 3, 4, 4, 8, 9, 10]
list.clear():清空列表
>>> numbers.clear()>>> numbers
[]
列表的常用函数
len(list):列表元素个数
>>> len(numbers)
4
max(list):返回列表元素最大值
>>> max(numbers)
10
min(list):返回列表元素最小值
>>> min(numbers)
2
list(seq):将元组转换为列表
>>> list(("a", "b", "c"))
['a', 'b', 'c']