python字典里的字典

 2025-05-26  阅读 3  评论 0

摘要:在 Python 中,字典(dict)可以嵌套其他字典,形成多层数据结构。这种结构非常适合存储具有层级关系的数据。以下是详细说明和示例:
1. 创建嵌套字典
python
直接定义嵌套字典
s

在 Python 中,字典(dict)可以嵌套其他字典,形成多层数据结构。这种结构非常适合存储具有层级关系的数据。以下是详细说明和示例:

python字典里的字典

1. 创建嵌套字典

python

直接定义嵌套字典

students = {

s001": {

name": "Alice",

age": 20,

courses": ["Math", "Physics"]

},

s002": {

name": "Bob",

age": 22,

courses": ["Chemistry", "Biology"]

2. 访问嵌套数据

使用多个键逐层访问:

python

print(students["s001"]["name"]) 输出: Alice

print(students["s002"]["courses"][0]) 输出: Chemistry

3. 修改嵌套字典

python

修改已有值

students["s001"]["age"] = 21

添加新键值对

students["s003"] = {

name": "Charlie",

age": 19,

courses": ["History"]

4. 动态创建嵌套字典

使用 `setdefault` 或 `defaultdict` 避免 KeyError:

python

from collections import defaultdict

方法1: setdefault

data = {}

data.setdefault('level1', {}).setdefault('level2', {})['value'] = 100

方法2: defaultdict

nested_dict = defaultdict(lambda: defaultdict(dict))

nested_dict['a']['b']['c'] = 123

5. 遍历嵌套字典

使用递归遍历所有层级:

python

def print_nested(d, indent=0):

for key, value in d.items:

if isinstance(value, dict):

print(" " indent + f"{key}:")

print_nested(value, indent + 4)

else:

print(" " indent + f"{key}: {value}")

print_nested(students)

6. 处理缺失键的安全方法

使用 `get` 避免 KeyError:

python

安全访问可能不存在的键

age = students.get("s003", {}).get("age", "Unknown")

7. 常见应用场景

  • 配置管理:存储多层配置参数。
  • JSON 数据处理:JSON 结构天然对应嵌套字典。
  • 树形数据结构:表示文件系统、组织结构等。
  • 8. 注意事项

  • 可读性:过深的嵌套会降低代码可读性,建议超过 3 层时改用类(Class)。
  • 内存占用:嵌套结构可能占用更多内存,需权衡设计。
  • 如果需要处理更复杂的数据关系,可以考虑使用 `dataclasses` 或第三方库(如 `pydantic`)。

    版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。

    原文链接:https://www.6g9.cn/qwsh/ddb36AD5QWlFRBg.html

    标签:字典python

    发表评论:

    关于我们
    知妳网是一个专注于知识成长与生活品质的温暖社区,致力于提供情感共鸣、实用资讯与贴心服务。在这里,妳可以找到相关的知识、专业的建议,以及提升自我的优质内容。无论是职场困惑、情感心事,还是时尚美妆、健康生活,知妳网都能精准匹配妳的需求,陪伴妳的每一步成长。因为懂妳,所以更贴心——知妳网,做妳最知心的伙伴!
    联系方式
    电话:
    地址:广东省中山市
    Email:admin@qq.com

    Copyright © 2022 知妳网 Inc. 保留所有权利。 Powered by

    页面耗时0.1194秒, 内存占用1.69 MB, 访问数据库19次