python列表(List)必会的13个核心技巧(附实用方法)
列表(List)是Python入门的关键步骤,因为它是编程中最常用的数据结构之一。以下是高效掌握列表的核心技巧和实用方法:
一、理解列表的本质
- 可变有序集合:可随时修改内容,保持元素顺序
- 混合类型:一个列表可包含不同类型的数据
mixed = [1, "apple", 3.14, True]
二、必须掌握的13个核心操作
1. 基础操作
fruits = ["apple", "banana", "orange"]
# 访问元素(索引从0开始)
print(fruits[1]) # 输出: banana
# 负索引(从右向左)
print(fruits[-1]) # 输出: orange
# 切片操作 [start:end:step]
print(fruits[0:2]) # 输出: ["apple", "banana"]
print(fruits[::-1]) # 反转列表
2. 修改列表
# 添加元素
fruits.append("pear") # 末尾添加
fruits.insert(1, "grape") # 指定位置插入
# 删除元素
fruits.pop() # 删除末尾元素
fruits.remove("apple") # 删除特定值
del fruits[0] # 按索引删除
3. 列表运算
numbers = [1, 2] + [3, 4] # 列表合并 → [1,2,3,4]
print(numbers * 2) # 重复列表 → [1,2,3,4,1,2,3,4]
三、5个高效技巧
- 列表生成式(快速创建列表)
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
- 快速过滤
evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]
- 同时遍历元素和索引
for index, fruit in enumerate(fruits):
print(f"第{index}个水果是{fruit}")
- 列表拆包
first, *middle, last = [1, 2, 3, 4, 5]
# first=1, middle=[2,3,4], last=5
深拷贝与浅拷贝
import copy
new_list = copy.deepcopy(original_list) # 完全独立的新列表
四、常见易错点
- 索引越界
lst = [1, 2]
# print(lst[2]) # 报错!IndexError
修改列表时遍历列表
# 错误示范:
# for item in lst:
# if condition:
# lst.remove(item)
# 正确做法:
lst = [x for x in lst if not condition]
嵌套列表的引用问题
matrix = [[0]*3]*3 # 三个子列表其实是同一个对象!
matrix[0][0] = 1 # 会修改所有子列表的第一个元素
五、实战练习建议
基础练习:
- 写一个函数找出列表中的最大值
- 实现列表去重功能
进阶挑战
# 矩阵转置
matrix = [[1, 2], [3, 4], [5, 6]]
transposed = list(zip(*matrix)) # [(1, 3, 5), (2, 4, 6)]
# 统计元素频率
from collections import Counter
Counter(['a', 'b', 'a', 'c']) # {'a': 2, 'b': 1, 'c': 1}
六、性能注意事项
操作 | 时间复杂度 | 说明 |
lst[i] | O(1) | 随机访问极快 |
lst.append() | O(1) | 尾部添加高效 |
lst.insert(0) | O(n) | 头部插入慢 |
x in lst | O(n) | 需要遍历检查 |
建议:频繁头部插入时考虑collections.deque