苦练Python第27天:嵌套数据结构

苦练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"])

✅ 最佳实践锦囊

  • ✅ 安全链式取值:

    python 复制代码
    user.get("profile", {}).get("email", "未找到")
  • ✅ 变量语义化:

    python 复制代码
    for 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 解析、答题系统、配置管理

最后感谢阅读!欢迎关注我,微信公众号 :倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

相关推荐
BK贝壳3 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949655 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
张彦峰ZYF6 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
拓恒技术7 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
怕浪猫7 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
罗西的思考9 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
在世修行9 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
字节跳动视频云技术团队9 小时前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
2601_9628857210 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI10 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化