在 Python 中,字典(dict)可以嵌套其他字典,形成多层数据结构。这种结构非常适合存储具有层级关系的数据。以下是详细说明和示例:
python
直接定义嵌套字典
students = {
s001": {
name": "Alice",
age": 20,
courses": ["Math", "Physics"]
},
s002": {
name": "Bob",
age": 22,
courses": ["Chemistry", "Biology"]
使用多个键逐层访问:
python
print(students["s001"]["name"]) 输出: Alice
print(students["s002"]["courses"][0]) 输出: Chemistry
python
修改已有值
students["s001"]["age"] = 21
添加新键值对
students["s003"] = {
name": "Charlie",
age": 19,
courses": ["History"]
使用 `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
使用递归遍历所有层级:
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)
使用 `get` 避免 KeyError:
python
安全访问可能不存在的键
age = students.get("s003", {}).get("age", "Unknown")
如果需要处理更复杂的数据关系,可以考虑使用 `dataclasses` 或第三方库(如 `pydantic`)。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态