logo
11

列表(Lists)

⏱️ 30分钟

列表(Lists):管理“一组数据”的核心结构

你现在可能会困惑什么

“我已经有变量了,为什么还要 list?”

变量适合一个值,list 适合一批值。 只要涉及批量处理,你几乎一定会用到 list。

一句话定义

列表是有序、可变的数据容器,支持增删改查与遍历。

生活类比

列表像购物清单: 你可以添加商品、删掉商品、改顺序、逐条检查。

最小可运行例子

fruits = ["apple", "banana", "cherry"]
print(fruits[0])   # apple
print(fruits[-1])  # cherry

增删改查

nums = [3, 1, 4]
nums.append(2)
nums.insert(1, 99)
nums.remove(4)
last = nums.pop()

print(nums)
print(last)

切片与排序

scores = [80, 95, 70, 88]
print(scores[1:3])
print(sorted(scores))
scores.sort(reverse=True)
print(scores)

遍历与索引

for i, val in enumerate(scores):
    print(i, val)

课堂小测(5 分钟)

  1. 创建购物清单并实现新增/删除。
  2. 计算价格列表最大值、最小值、平均值。
  3. 打印每个元素及其索引。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

做一个“成绩看板”:

  • 输入成绩列表
  • 输出平均分、最高分、最低分
  • 输出降序排名

本节验收标准

你能独立做到:

  • 完成 list 的增删改查
  • 正确使用切片和排序
  • 用循环处理整批数据

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:removepop 一样。

  • 正解:remove 按值删,pop 按索引删并返回值。

  • 误区:遍历时随意改列表长度。

  • 正解:容易漏处理,必要时先复制再改。