Python 列表(list)
列表是 Python 中最常用的数据类型之一,用于存储一组有序的元素。列表支持多种操作,具有灵活性和可变性,可以轻松完成增、删、改、查操作。
1. 什么是列表?
列表是一个有序集合,可以存储任意类型的元素。
在 Python 中,列表用方括号 []
表示,元素之间用逗号 ,
分隔。
示例:定义列表
# 空列表
empty_list = []
# 包含多个元素的列表
fruits = ["苹果", "香蕉", "橙子"]
# 包含不同类型的元素
mixed_list = [1, "Python", True, [1, 2, 3]]
2. 列表的常见操作
1) 访问元素
列表中的元素是有序的,可以通过索引访问。索引从 0 开始。
fruits = ["苹果", "香蕉", "橙子"]
print(fruits[0]) # 输出:苹果
print(fruits[-1]) # 输出:橙子,负索引表示从右往左
2) 修改元素
通过索引直接修改某个位置的值。
fruits = ["苹果", "香蕉", "橙子"]
fruits[1] = "草莓" # 将香蕉替换为草莓
print(fruits) # 输出:['苹果', '草莓', '橙子']
3) 添加元素
- 使用
append
:在列表末尾追加一个元素。 - 使用
insert
:在指定位置插入元素。
# append
fruits = ["苹果", "香蕉"]
fruits.append("橙子")
print(fruits) # 输出:['苹果', '香蕉', '橙子']
# insert
fruits.insert(1, "草莓")
print(fruits) # 输出:['苹果', '草莓', '香蕉', '橙子']
4) 删除元素
- 使用
del
:根据索引删除。 - 使用
remove
:根据值删除(如果值重复,仅删除第一个匹配项)。 - 使用
pop
:弹出指定索引的元素,默认弹出最后一个。
# del
fruits = ["苹果", "香蕉", "橙子"]
del fruits[1]
print(fruits) # 输出:['苹果', '橙子']
# remove
fruits = ["苹果", "香蕉", "香蕉"]
fruits.remove("香蕉")
print(fruits) # 输出:['苹果', '香蕉']
# pop
fruits = ["苹果", "香蕉", "橙子"]
last = fruits.pop()
print(fruits) # 输出:['苹果', '香蕉']
print(last) # 输出:橙子
5) 切片操作
切片操作可以提取列表中的一部分元素。
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4]) # 输出:[1, 2, 3]
print(numbers[:3]) # 输出:[0, 1, 2],从开头到索引2
print(numbers[3:]) # 输出:[3, 4, 5],从索引3到结尾
print(numbers[::2]) # 输出:[0, 2, 4],步长为2
6) 列表长度
使用 len
获取列表的长度(元素个数)。
numbers = [1, 2, 3, 4]
print(len(numbers)) # 输出:4
3. 列表的常用方法
方法 | 作用 | 示例 |
---|---|---|
append(item) |
在末尾追加元素 | fruits.append("西瓜") |
insert(index, item) |
在指定位置插入元素 | fruits.insert(1, "草莓") |
remove(item) |
删除指定值的第一个匹配项 | fruits.remove("香蕉") |
pop(index) |
弹出指定索引的元素,默认为最后一个 | fruits.pop() |
index(item) |
返回指定值的第一个索引 | fruits.index("苹果") |
count(item) |
统计某个值在列表中的个数 | fruits.count("苹果") |
sort() |
原地排序(默认升序) | numbers.sort() |
reverse() |
反转列表 | numbers.reverse() |
clear() |
清空列表 | fruits.clear() |
示例:排序和统计
numbers = [5, 3, 8, 2, 5]
numbers.sort() # 排序
print(numbers) # 输出:[2, 3, 5, 5, 8]
print(numbers.count(5)) # 输出:2,统计 5 的个数
4. 嵌套列表
列表可以包含其他列表,形成多维列表。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 访问第二行第三列
print(matrix[1][2]) # 输出:6
5. 列表推导式
列表推导式是构建列表的简洁方式。
生成新列表
# 生成一个包含 1 到 5 的平方的列表
squares = [x ** 2 for x in range(1, 6)]
print(squares) # 输出:[1, 4, 9, 16, 25]
条件筛选
# 筛选出偶数的平方
even_squares = [x ** 2 for x in range(1, 6) if x % 2 == 0]
print(even_squares) # 输出:[4, 16]
6. 列表与其他类型的转换
字符串转换为列表
text = "hello"
char_list = list(text) # 将字符串分解为字符列表
print(char_list) # 输出:['h', 'e', 'l', 'l', 'o']
列表转换为字符串
words = ["Python", "is", "fun"]
sentence = " ".join(words) # 用空格连接
print(sentence) # 输出:Python is fun
7. 注意事项
索引越界:访问不存在的索引会报错。
fruits = ["苹果"] print(fruits[1]) # IndexError
列表是可变的:列表内容可以直接修改,会影响到引用它的变量。
性能注意:列表操作的效率会随着列表长度增加而降低,特别是插入和删除操作。
8. 总结
- 列表是一个功能强大的数据结构,支持存储任意类型的元素。
- 它提供了丰富的方法,能够高效处理多种数据操作。
- 学会列表,能让你的 Python 编程更加灵活、高效!