Files
2026-08-22 01:09:25 +08:00

2.6 KiB
Raw Permalink Blame History

Day_5 · 字典:带名字的数据

预计耗时:20~30 分钟 字典是"键 → 值"的对应表。Django 里请求参数(request.GET)、一条数据库记录,全是字典的样子。

今日知识点

  • 创建:user = {"name": "张三", "age": 18}
  • 取值:user["name"] 或 user.get("name")(get 取不到不报错,可给默认值)
  • 改值:user["age"] = 19
  • 加键:user["city"] = "青岛"
  • 删键:del user["city"]
  • 遍历:for k, v in user.items(): print(k, v)

先学(教程)

任务(后做)

新建 day5.py,按顺序写并运行:

  1. 创建一个"用户"字典并取值:
    user = {"name": "张三", "age": 18, "city": "青岛"}
    print(user["name"])
    print(user["age"])
    
  2. 修改年龄、新增一个键、删除一个键:
    user["age"] = 19
    user["hobby"] = "写代码"
    del user["city"]
    print(user)
    
  3. 遍历打印每一项:
    for key, value in user.items():
        print(f"{key} = {value}")
    
  4. 用 get() 安全取值:
    print(user.get("city"))            # 键已被删,会是什么?
    print(user.get("city", "未知"))    # 给默认值
    
  5. 进阶(加分):造一个字典列表,模拟"查出来的三个用户":
    users = [
        {"name": "张三", "age": 19},
        {"name": "李四", "age": 20},
        {"name": "王五", "age": 18},
    ]
    for u in users:
        print(f"{u['name']}今年{u['age']}岁")
    

完成标准

  • 任务 1~4 输出符合预期
  • 能说出 user["x"] 和 user.get("x") 的区别
  • (进阶)字典列表遍历打印成功

提交方式:把 day5.py 代码贴在当日工单评论里。

参考解答(先做再看)

user = {"name": "张三", "age": 18, "city": "青岛"}
print(user["name"])            # 张三

user["age"] = 19
user["hobby"] = "写代码"
del user["city"]
print(user)                    # {'name': '张三', 'age': 19, 'hobby': '写代码'}

for key, value in user.items():
    print(f"{key} = {value}")

print(user.get("city"))        # None(键不存在,get 不报错)
print(user.get("city", "未知"))  # 未知

# 进阶
users = [
    {"name": "张三", "age": 19},
    {"name": "李四", "age": 20},
    {"name": "王五", "age": 18},
]
for u in users:
    print(f"{u['name']}今年{u['age']}岁")