列表是 Python 中最常用的容器类型之一,用于存储有序的元素集合。列表的特点是元素类型可以不同,且可以动态调整大小。以下是关于列表的详细讲解和操作示例。
1. 列表的基本特点
- 可变性:可以随时添加、修改、删除元素。
- 支持任意数据类型:列表中的元素可以是数字、字符串、布尔值、对象、甚至其他列表。
- 有序性:列表中的元素按照插入顺序存储,并且可以通过索引访问。
定义一个列表:
# 定义一个空列表
empty_list = []
# 定义一个包含多种数据类型的列表
mixed_list = [1, "hello", True, 3.14]
print(mixed_list) # 输出: [1, 'hello', True, 3.14]
2. 列表的基本操作
访问元素
通过索引访问列表中的元素,索引从 0 开始。
fruits = ["apple", "banana", "cherry"]
# 访问第一个元素
print(fruits[0]) # 输出: apple
# 访问最后一个元素
print(fruits[-1]) # 输出: cherry
修改元素
通过索引直接修改元素。
fruits[1] = "blueberry"
print(fruits) # 输出: ['apple', 'blueberry', 'cherry']
添加元素
append()
:在列表末尾添加元素。insert()
:在指定位置插入元素。
numbers = [1, 2, 3]
# 添加到末尾
numbers.append(4)
print(numbers) # 输出: [1, 2, 3, 4]
# 插入到指定位置
numbers.insert(1, 10)
print(numbers) # 输出: [1, 10, 2, 3, 4]
删除元素
del
语句:根据索引删除。remove()
:根据值删除。pop()
:删除并返回最后一个或指定位置的元素。
fruits = ["apple", "banana", "cherry", "date"]
# 删除指定索引
del fruits[1]
print(fruits) # 输出: ['apple', 'cherry', 'date']
# 删除指定值
fruits.remove("cherry")
print(fruits) # 输出: ['apple', 'date']
# 删除并返回
last_fruit = fruits.pop()
print(last_fruit) # 输出: date
print(fruits) # 输出: ['apple']
查找元素
index()
:返回元素的索引(如果不存在会抛出错误)。in
操作符:检查元素是否存在。
numbers = [10, 20, 30, 40]
# 查找索引
print(numbers.index(20)) # 输出: 1
# 检查元素是否存在
print(30 in numbers) # 输出: True
print(50 in numbers) # 输出: False
3. 列表的高级操作
切片
切片用于提取列表的一部分,语法为 list[start:end:step]
。
letters = ["a", "b", "c", "d", "e"]
# 提取索引 1 到 3 的元素
print(letters[1:4]) # 输出: ['b', 'c', 'd']
# 每隔一个元素提取
print(letters[::2]) # 输出: ['a', 'c', 'e']
# 逆序
print(letters[::-1]) # 输出: ['e', 'd', 'c', 'b', 'a']
排序
sort()
:原地排序,默认升序。sorted()
:返回排序后的新列表。
numbers = [5, 2, 9, 1]
# 原地排序
numbers.sort()
print(numbers) # 输出: [1, 2, 5, 9]
# 逆序排序
numbers.sort(reverse=True)
print(numbers) # 输出: [9, 5, 2, 1]
# 返回新列表
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 2, 5, 9]
列表推导式
列表推导式是快速生成列表的方式,常用于过滤和变换操作。
# 生成 1 到 10 的平方
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 过滤奇数
odds = [x for x in range(10) if x % 2 == 1]
print(odds) # 输出: [1, 3, 5, 7, 9]
4. 嵌套列表
列表可以包含其他列表,形成多维结构。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 访问嵌套列表的元素
print(matrix[1][2]) # 输出: 6
5. 常用方法总结
方法 |
功能 |
|
添加元素到末尾 |
|
插入元素到指定位置 |
|
删除指定值的元素 |
|
删除并返回指定索引的元素 |
|
查找元素的索引 |
|
统计元素出现的次数 |
|
原地排序 |
|
反转列表 |
|
扩展列表 |
练习题
- 创建一个包含 1 到 10 的列表,然后:
-
- 打印偶数。
- 打印元素的平方。
- 删除列表中大于 5 的元素。
- 创建一个嵌套列表,表示 3x3 的矩阵,计算对角线元素的和。
- 使用列表推导式生成 1 到 20 中能被 3 整除的数。