📚 课程导言
同学们好!今天我们要学习Python中非常重要的一个概念——列表遍历。 什么是遍历?简单来说,就是"一个一个访问列表中的每个元素"。 就像你在图书馆的书架前,从左到右依次查看每本书一样。
我们将通过四个实际项目,从简单到复杂,逐步掌握列表遍历的所有技巧!
🎯 项目一:班级点名系统
1
基础遍历 - for...in 循环
场景:老师需要给班级的每位同学点名。我们有一个学生名单列表,需要逐个读出每个学生的名字。
# 学生名单
students = ["小明", "小红", "小刚", "小美", "小华"]
# 方法1: 最常用的 for...in 循环
for student in students:
print(f"✓ {student} 到!")
students = ["小明", "小红", "小刚", "小美", "小华"]
# 方法1: 最常用的 for...in 循环
for student in students:
print(f"✓ {student} 到!")
📊 可视化演示
💡 核心知识点
- for...in 是最简单、最常用的遍历方式
- 循环变量(student)会自动获取列表中的每个元素
- 不需要关心索引位置,Python自动帮你处理
- 代码简洁易读,适合大多数遍历场景
🎯 项目二:成绩排名系统
2
带索引遍历 - enumerate() 函数
场景:需要公布期末考试成绩排名,不仅要显示分数,还要显示排名(第1名、第2名...)。
# 成绩列表(已按分数从高到低排序)
scores = [95, 92, 88, 85, 82]
# 方法2: 使用 enumerate() 获取索引和值
for index, score in enumerate(scores):
rank = index + 1 # 索引从0开始,排名从1开始
print(f"第{rank}名: {score}分")
scores = [95, 92, 88, 85, 82]
# 方法2: 使用 enumerate() 获取索引和值
for index, score in enumerate(scores):
rank = index + 1 # 索引从0开始,排名从1开始
print(f"第{rank}名: {score}分")
📊 可视化演示
💡 核心知识点
- enumerate() 同时获取索引和元素值
- 返回一个包含 (索引, 值) 的元组
- 索引从0开始,可以通过 enumerate(list, start=1) 改变起始值
- 适用于需要知道元素位置的场景
🎯 项目三:购物车价格计算
3
索引遍历 - range() + len() 组合
场景:有两个列表,一个是商品名称,一个是对应价格。需要计算总价并显示每件商品信息。
# 商品和价格列表
items = ["苹果", "香蕉", "橙子", "葡萄"]
prices = [5.5, 3.2, 4.8, 12.0]
# 方法3: 使用索引访问多个列表
total = 0
for i in range(len(items)):
price = prices[i]
total += price
print(f"{items[i]}: ¥{price}")
print(f"\n总价: ¥{total}")
items = ["苹果", "香蕉", "橙子", "葡萄"]
prices = [5.5, 3.2, 4.8, 12.0]
# 方法3: 使用索引访问多个列表
total = 0
for i in range(len(items)):
price = prices[i]
total += price
print(f"{items[i]}: ¥{price}")
print(f"\n总价: ¥{total}")
📊 可视化演示
商品列表:
价格列表:
💡 核心知识点
- range(len(list)) 生成从0到列表长度-1的索引序列
- 通过索引可以同时访问多个相关联的列表
- 适合需要同时处理多个列表的场景
- 可以通过索引修改列表元素
🎯 项目四:温度数据筛选器
4
列表推导式 - 高级遍历技巧
场景:有一周的温度数据,需要筛选出超过30度的高温天气,并创建新列表。
# 一周温度数据(摄氏度)
temperatures = [28, 32, 29, 35, 31, 27, 33]
# 方法4a: 传统方式筛选
high_temps = []
for temp in temperatures:
if temp > 30:
high_temps.append(temp)
# 方法4b: 列表推导式(更简洁!)
high_temps = [temp for temp in temperatures if temp > 30]
print(f"高温天气: {high_temps}")
temperatures = [28, 32, 29, 35, 31, 27, 33]
# 方法4a: 传统方式筛选
high_temps = []
for temp in temperatures:
if temp > 30:
high_temps.append(temp)
# 方法4b: 列表推导式(更简洁!)
high_temps = [temp for temp in temperatures if temp > 30]
print(f"高温天气: {high_temps}")
📊 可视化演示
原始温度数据:
筛选结果(>30°C):
💡 核心知识点
- 列表推导式是Python的特色功能,代码更简洁
- 基本语法:[表达式 for 变量 in 列表 if 条件]
- 可以在一行代码中完成遍历、筛选、转换
- 性能通常优于传统循环
- 适合简单的转换操作,复杂逻辑建议用传统循环
📝 课程总结
四种遍历方法对比
# 1. for...in - 最简单,只需要元素值
for item in my_list:
print(item)
# 2. enumerate() - 需要索引和值
for index, item in enumerate(my_list):
print(f"{index}: {item}")
# 3. range(len()) - 需要通过索引操作多个列表
for i in range(len(my_list)):
print(my_list[i])
# 4. 列表推导式 - 创建新列表
new_list = [item * 2 for item in my_list]
for item in my_list:
print(item)
# 2. enumerate() - 需要索引和值
for index, item in enumerate(my_list):
print(f"{index}: {item}")
# 3. range(len()) - 需要通过索引操作多个列表
for i in range(len(my_list)):
print(my_list[i])
# 4. 列表推导式 - 创建新列表
new_list = [item * 2 for item in my_list]
🎓 学习建议
- 初学者先掌握 for...in,它最直观易懂
- 需要排名、编号时使用 enumerate()
- 处理多个相关列表时使用 range(len())
- 熟练后学习列表推导式,让代码更Pythonic
- 多做练习,在实际项目中体会每种方法的适用场景