第 5 天|列表、字典与真题数据结构¶
日期: 2026 年 7 月 24 日
核心内容: 列表、字典、嵌套结构、for 遍历和 if 筛选
三套真题的数据结构基础:
- HTML 表格最终转换为 DataFrame;
- API JSON 常表现为嵌套字典和列表;
- 多条商品记录常表示为“列表中放字典”。
列表:按顺序保存多个值¶
列表使用方括号 [],元素之间用英文逗号分隔。
product_names = ["双肩包", "拉杆箱", "帆布包"]
print(product_names[0])
print(product_names[1])
print(product_names[2])
双肩包 拉杆箱 帆布包
列表下标从 0 开始:
| 人的顺序 | Python 下标 |
|---|---|
| 第 1 个 | 0 |
| 第 2 个 | 1 |
| 第 3 个 | 2 |
三个元素的合法下标是 0、1、2。访问下标 3 会触发 IndexError。
字典:用字段名保存一条记录¶
字典使用花括号 {},每个字段由“键: 值”组成。
product = {
"品名": "双肩包",
"销售数量": 125,
"商城价格": 199.0,
}
print(product["品名"])
print(product["销售数量"])
print(product["商城价格"])
双肩包 125 199.0
| 概念 | 示例 |
|---|---|
| 键 | "销售数量" |
| 值 | 125 |
| 按键取值 | product["销售数量"] |
| 修改值 | product["销售数量"] = 130 |
键名必须完全匹配。"销售数量"、"销量"、"销售数量 " 是三个不同的键。
列表中放字典:表示多条记录¶
products = [
{"品名": "双肩包", "销售数量": 125, "商城价格": 199.0},
{"品名": "帆布包", "销售数量": 80, "商城价格": 59.0},
]
print(products[0]["品名"])
print(products[1]["销售数量"])
双肩包 80
products[0]["品名"] 分两步:
products[0]取得第 1 条商品字典;["品名"]再从该字典取得品名。
名仕 API 的 res_data_02["data"]["list"] 也是逐层进入嵌套结构。
for 遍历每条商品记录¶
for product in products:
total_sales = product["销售数量"] * product["商城价格"]
print(f"{product['品名']}:{total_sales:.2f} 元")
双肩包:24875.00 元 帆布包:4720.00 元
for product in products: 的含义:
依次从
products列表取出一条字典,把当前字典暂时命名为product。
| 轮次 | 当前商品 | 计算 |
|---|---|---|
| 1 | 双肩包 | 125 × 199.0 |
| 2 | 帆布包 | 80 × 59.0 |
循环体必须缩进。循环外的代码只在循环结束后执行一次。
if 筛选销售数量大于 100¶
for product in products:
if product["销售数量"] > 100:
total_sales = product["销售数量"] * product["商城价格"]
print(product["品名"], total_sales)
双肩包 24875.0
if 只允许条件为 True 的记录执行内部代码。
两级缩进分别表示:
if属于for;- 计算和输出属于
if。
科图题中的商品数量筛选、青娅题中的项目筛选,本质上都是根据条件保留记录。