2.6 KiB
2.6 KiB
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)
先学(教程)
- 菜鸟教程("字典"一节,重点看增删改查和 items()):https://www.runoob.com/python3/python3-dictionary.html
- B站黑马教程(看讲"字典"的几集):https://www.bilibili.com/video/BV1qW4y1a7fU/
任务(后做)
新建 day5.py,按顺序写并运行:
- 创建一个"用户"字典并取值:
user = {"name": "张三", "age": 18, "city": "青岛"} print(user["name"]) print(user["age"]) - 修改年龄、新增一个键、删除一个键:
user["age"] = 19 user["hobby"] = "写代码" del user["city"] print(user) - 遍历打印每一项:
for key, value in user.items(): print(f"{key} = {value}") - 用
get()安全取值:print(user.get("city")) # 键已被删,会是什么? print(user.get("city", "未知")) # 给默认值 - 进阶(加分):造一个字典列表,模拟"查出来的三个用户":
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']}岁")