苦练Python第27天:嵌套数据结构
前言
大家好,我是倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!
欢迎来到 苦练Python 第 27 天!今天带你拆解 嵌套数据结构 ------ 列表里放字典、字典里塞列表,层层套娃,玩转 API、配置、数据库全靠它!🐍💼
📦 今日收获清单
- 嵌套结构是什么
- 四大常见组合:
list[dict]
、dict[list]
、dict[dict]
、list[list]
- 深度取值、优雅修改、最佳实践
🔄 什么是嵌套数据结构?
一句话:结构里再套结构 。
Python 原生支持,写接口、存配置、做报表都离不开。
🔹 1. 列表里存字典
python
users = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 22}
]
🔸 取值 & 循环
python
print(users[0]["name"]) # Alice
for user in users:
print(user["name"])
🔹 2. 字典里存列表
python
grades = {
"math": [90, 85, 88],
"science": [92, 89, 94]
}
🔸 操作示例
python
print(grades["math"][1]) # 85
grades["math"].append(95) # 追加新成绩
🔹 3. 字典里再套字典
python
users = {
"alice": {"email": "alice@example.com", "age": 25},
"bob": {"email": "bob@example.com", "age": 30}
}
🔸 深度取值 / 修改
python
print(users["bob"]["email"]) # bob@example.com
users["bob"]["age"] = 31 # 直接改值
🔹 4. 列表里套列表(矩阵)
python
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
🔸 双重循环打印
python
print(matrix[1][2]) # 6
for row in matrix:
for val in row:
print(val, end=" ")
📊 真实场景演练
📋 1. 类 JSON 的 API 响应
python
response = {
"status": "success",
"data": {
"users": [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
}
}
# 取 Bob 的名字
print(response["data"]["users"][1]["name"]) # Bob
🧠 2. 在线答题系统
python
quiz = [
{
"question": "2 + 2 = ?",
"options": [2, 3, 4, 5],
"answer": 4
},
{
"question": "法国首都是?",
"options": ["伦敦", "柏林", "巴黎", "罗马"],
"answer": "巴黎"
}
]
for q in quiz:
print(q["question"])
print("选项:", q["options"])
✅ 最佳实践锦囊
-
✅ 安全链式取值:
pythonuser.get("profile", {}).get("email", "未找到")
-
✅ 变量语义化:
pythonfor user in users: name = user["name"] age = user["age"]
-
✅ 控制嵌套深度:层级越深,维护越难,保持简洁。
🧪 高阶技巧:动态修改
更新指定值
python
users[1]["age"] = 35
向嵌套列表追加
python
grades["science"].append(96)
🧠 今日回顾
- 四种常见嵌套路径:
list[dict]
、dict[list]
、dict[dict]
、list[list]
- 用
.get()
链式安全取值,用清晰变量名提升可读性 - 真实案例:API 解析、答题系统、配置管理
最后感谢阅读!欢迎关注我,微信公众号 :
倔强青铜三
。欢迎点赞
、收藏
、关注
,一键三连!!!