92 lines
2.6 KiB
Markdown
92 lines
2.6 KiB
Markdown
# 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`,按顺序写并运行:
|
||
|
||
1. 创建一个"用户"字典并取值:
|
||
```python
|
||
user = {"name": "张三", "age": 18, "city": "青岛"}
|
||
print(user["name"])
|
||
print(user["age"])
|
||
```
|
||
2. 修改年龄、新增一个键、删除一个键:
|
||
```python
|
||
user["age"] = 19
|
||
user["hobby"] = "写代码"
|
||
del user["city"]
|
||
print(user)
|
||
```
|
||
3. 遍历打印每一项:
|
||
```python
|
||
for key, value in user.items():
|
||
print(f"{key} = {value}")
|
||
```
|
||
4. 用 `get()` 安全取值:
|
||
```python
|
||
print(user.get("city")) # 键已被删,会是什么?
|
||
print(user.get("city", "未知")) # 给默认值
|
||
```
|
||
5. **进阶(加分)**:造一个**字典列表**,模拟"查出来的三个用户":
|
||
```python
|
||
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` 代码贴在当日工单评论里。
|
||
|
||
## 参考解答(先做再看)
|
||
|
||
```python
|
||
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']}岁")
|
||
```
|