如何在嵌套字典中读取数据

在Python中,字典是一种非常常用的数据类型。它允许我们以键-值对的形式存储和访问数据。有时候,我们需要在嵌套字典中读取数据,也就是在一个字典的值中包含另一个字典。本文将介绍如何在嵌套字典中读取数据,并提供一个具体的问题和解决方案的示例。

嵌套字典的结构

嵌套字典是一个字典包含另一个字典的数据结构。它可以有多层嵌套,每一层都是一个字典。举个例子,假设我们有一个嵌套字典,表示一个班级的成绩单:

{
  "张三": {
    "数学": 90,
    "语文": 80,
    "英语": 95
  },
  "李四": {
    "数学": 85,
    "语文": 92,
    "英语": 88
  }
}

在这个例子中,外层字典的键是学生的姓名,值是一个包含科目和成绩的字典。内层字典的键是科目名,值是对应的成绩。

如何读取嵌套字典中的数据

要读取嵌套字典中的数据,我们需要使用多次索引操作。首先,我们使用外层字典的键来获取内层字典,然后再使用内层字典的键来获取具体的数据。下面是一个示例代码:

scores = {
  "张三": {
    "数学": 90,
    "语文": 80,
    "英语": 95
  },
  "李四": {
    "数学": 85,
    "语文": 92,
    "英语": 88
  }
}

# 读取李四的数学成绩
math_score = scores["李四"]["数学"]
print(math_score)  # 输出:85

在这个示例中,我们首先使用外层字典的键"李四"来获取内层字典{"数学": 85, "语文": 92, "英语": 88},然后再使用内层字典的键"数学"来获取李四的数学成绩。

解决问题示例:统计班级成绩的分布情况

假设我们有一个班级的成绩单,其中包含每个学生的数学成绩。我们希望统计班级成绩的分布情况,即每个分数段有多少学生。我们可以使用嵌套字典来表示成绩单,然后使用上面介绍的方法来读取数据,并使用一些统计方法来分析数据。

下面是一个解决这个问题的示例代码:

scores = {
  "张三": {
    "数学": 90
  },
  "李四": {
    "数学": 85
  },
  "王五": {
    "数学": 92
  },
  "赵六": {
    "数学": 78
  }
}

# 统计分数段的学生人数
score_counts = {
  "60-69": 0,
  "70-79": 0,
  "80-89": 0,
  "90-100": 0
}

for student in scores:
    score = scores[student]["数学"]
    if 60 <= score <= 69:
        score_counts["60-69"] += 1
    elif 70 <= score <= 79:
        score_counts["70-79"] += 1
    elif 80 <= score <= 89:
        score_counts["80-89"] += 1
    elif 90 <= score <= 100:
        score_counts["90-100"] += 1

# 输出分数段的学生人数
for score_range, count in score_counts.items():
    print(f"{score_range} 分数段的学生人数: {count}")

在这个示例中,我们首先定义了一个空字典score_counts来存储分数段的学生人数