--- tid: 32a6na title: List Methods Tutorial --- # Lab 1.1 - List Methods Tutorial (date: 2025-11-13) 时长: 30分钟 难度: 1 ## 第1部分:Python List 核心方法速查表 [step 1] ### **教学主题:用List管理一个购物清单** **开场介绍:** 我们通过填写这张‘核心方法速查表’,在30分钟内掌握Python List最常用的操作。每个方法都对应购物清单的一个实际需求。 | 场景任务 (我们要做什么?) | 应该用什么List方法? | 代码示例 (关键部分填空) | | --------------------------- | ----------------------- | ----------------------------------------------------------- | | 1. 创建一个空购物清单 | 空列表 `[]` 或 `list()` | `shopping_list = ____` | | 2. 向清单添加"牛奶"、"面包" | `.append()` | `shopping_list.____('牛奶')` `shopping_list.____('面包')` | | 3. 在"牛奶"后插入"鸡蛋" | `.insert()` | `shopping_list.____(1, '鸡蛋')` | | 4. 查看清单第2个物品 | 索引 `[index]` | `second_item = shopping_list[____]` | | 5. 删除"面包" | `.remove()` | `shopping_list.____('面包')` | | 6. 检查是否包含"苹果" | `in` 关键字 | `has_apple = '苹果' ____ shopping_list` | | 7. 获取清单长度 | `len()` | `list_length = ____(shopping_list)` | | 8. 对清单按字母排序 | `.sort()` | `shopping_list.____()` | | 9. 清空整个清单 | `.clear()` | `shopping_list.____()` | 要求: 按下面的格式编写代码,并逐行运行,观察和记录结果结果。 ```python #%% block 1 shopping_list = [] # Output: [] #%% block 2 shopping_list.append(...) # Output: ['牛奶'] #%% block 3 ... ``` ### 学习流程 1. **逐行填写**:从任务1开始,每行讲解场景→引出方法→学生填写→现场演示效果 2. **即时验证**:每完成2-3行就在Python解释器中运行,让学生立即看到结果 3. **对比强调**:特别强调易混点(如`.append()`与`.insert()`、`.remove()`与`pop()`) ## 第2部分:核心问题驱动练习 ### **练习1:添加元素综合** [step 2] ```python a = [1,2,3,4,5,6,7] # 问题1:添加8 → a.append(8) # 问题2:添加8,9,10 → a.extend([8,9,10]) # 对比 a + [8,9,10] # 问题3:最前面添加0 → a.insert(0, 0) ``` ### **练习2:sort()的陷阱** [step 3] ```python x = [4, 6, 2, 1, 7, 9] # 错误示范 y = x.sort() # 结果y是None! print(y) # None # 三种正确方法对比 y = x.copy() # y.sort() y = sorted(x) # 最推荐! # 文件排序问题 import os fls = os.listdir(".") # 正确:先获取,再排序 fls.sort() # 不是链式操作! ``` ### **练习3:高级排序** [step 4] ```python words = ['hello', 'world', 'python', 'list'] # 按长度排序 words.sort(key=len) # 按最后一个字母排序 ← 保留原教案练习 words.sort(key=lambda word: word[-1]) # 逆序 words.sort(reverse=True) ``` ### **练习4:查找综合** ```python a = [1,2,3,4,5,6,7,1,2,3] # 查找位置 idx = a.index(3) # 第一个3的位置 count = a.count(3) # 3出现的次数 ``` --- ## 第3部分 自学内容 1. `clear()` vs `del` 2. `index()`深入使用