Python 3 列表(List)详解
在 Python 3 中,列表(List)是一种有序、可变(Mutable)的数据结构,用于存储多个元素。列表可以包含不同类型的元素,如数字、字符串、甚至是另一个列表。
1. 列表的定义
Python 使用方括号 [] 定义列表,列表中的元素使用逗号 , 分隔。
📌 示例代码:
# 创建列表
list1 = [1, 2, 3, 4, 5]
list2 = ["apple", "banana", "cherry"]
list3 = [True, False, True]
list4 = [1, "Python", 3.14, [10, 20, 30]] # 可包含不同类型
print(list1) # [1, 2, 3, 4, 5]
print(list2) # ['apple', 'banana', 'cherry']
print(list4) # [1, 'Python', 3.14, [10, 20, 30]]
2. 访问列表元素
(1)索引访问
列表的索引从 0 开始,支持正向索引和负向索引。
📌 示例代码:
list1 = ["Python", "Java", "C++", "JavaScript"]
print(list1[0]) # Python
print(list1[2]) # C++
print(list1[-1]) # JavaScript(负索引)
print(list1[-3]) # Java
(2)切片(Slicing)
可以使用 列表[start:end:step] 进行切片:
start:起始索引(包含)end:结束索引(不包含)step:步长(默认为1)
📌 示例代码:
list1 = ["a", "b", "c", "d", "e", "f", "g"]
print(list1[1:4]) # ['b', 'c', 'd']
print(list1[:3]) # ['a', 'b', 'c'] (默认从 0 开始)
print(list1[4:]) # ['e', 'f', 'g'] (默认到末尾)
print(list1[::2]) # ['a', 'c', 'e', 'g'] (步长为 2)
print(list1[::-1]) # 反转列表 ['g', 'f', 'e', 'd', 'c', 'b', 'a']
3. 修改列表
列表是可变对象,可以修改其中的元素。
📌 示例代码:
list1 = [10, 20, 30, 40]
list1[1] = 99 # 修改索引 1 的值
print(list1) # [10, 99, 30, 40]
4. 添加元素
Python 提供了多种方式向列表添加元素。
(1)append() — 追加元素
在列表末尾添加一个元素。
📌 示例代码:
list1 = [1, 2, 3]
list1.append(4)
print(list1) # [1, 2, 3, 4]
(2)insert() — 指定位置插入元素
insert(index, element)
📌 示例代码:
list1 = [1, 2, 4]
list1.insert(2, 3) # 在索引 2 位置插入 3
print(list1) # [1, 2, 3, 4]
(3)extend() — 追加多个元素
📌 示例代码:
list1 = [1, 2, 3]
list1.extend([4, 5, 6])
print(list1) # [1, 2, 3, 4, 5, 6]
5. 删除元素
Python 提供了多种方式删除列表中的元素。
(1)remove() — 按值删除
📌 示例代码:
list1 = [10, 20, 30, 40]
list1.remove(20) # 删除值为 20 的元素
print(list1) # [10, 30, 40]
(2)pop() — 按索引删除
📌 示例代码:
list1 = [10, 20, 30, 40]
list1.pop(2) # 删除索引 2 的元素
print(list1) # [10, 20, 40]
# 若不指定索引,默认删除最后一个元素
list1.pop()
print(list1) # [10, 20]
(3)del — 直接删除
📌 示例代码:
list1 = [10, 20, 30, 40]
del list1[1] # 删除索引 1 的元素
print(list1) # [10, 30, 40]
del list1[:] # 清空整个列表
print(list1) # []
6. 常用列表方法
| 方法 | 说明 | 示例 |
|---|---|---|
append(x) | 追加元素 x | list.append(5) |
insert(i, x) | 在索引 i 处插入 x | list.insert(2, "hello") |
extend(iterable) | 扩展列表 | list.extend([7, 8, 9]) |
remove(x) | 删除值 x | list.remove(2) |
pop(i) | 删除索引 i 处的元素 | list.pop(1) |
index(x) | 返回 x 的索引 | list.index(3) |
count(x) | 统计 x 出现的次数 | list.count(3) |
sort() | 排序(默认升序) | list.sort() |
reverse() | 反转列表 | list.reverse() |
copy() | 复制列表 | new_list = list.copy() |
📌 示例代码:
list1 = [3, 1, 4, 1, 5, 9]
print(list1.count(1)) # 统计 1 出现的次数 -> 2
list1.sort() # 升序排序
print(list1) # [1, 1, 3, 4, 5, 9]
list1.reverse() # 反转列表
print(list1) # [9, 5, 4, 3, 1, 1]
7. 列表推导式(List Comprehension)
Python 提供了一种简洁的方法来生成列表——列表推导式。
📌 示例代码:
# 生成 0~9 的平方
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 生成偶数列表
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
总结
- 列表可变,可以存储不同类型的元素
- 支持索引和切片
- 提供丰富的操作方法(增、删、改、查、排序、拷贝等)
- 列表推导式提供高效方式生成列表
更多详细内容请关注其他相关文章!