我是一个python新手,正在学习字典。我有一个学生名单和他们的成绩,我需要映射每个学生到他的成绩为一个具体的考试。你知道吗
我使用for循环遍历每个学生的名字,然后使用另一个循环遍历考试成绩。我的代码如下,但由于某些原因,我没有得到一个理想的结果。我希望有人能指出我哪里搞砸了。非常感谢。你知道吗
students = {'Student1': {'Exam1': 80, 'Exam2': 80, 'Exam3': 70},
'Student2': {'Exam1': 90, 'Exam2': 70, 'Exam3': 65}}
student_grades = {}
for student, exam in students.items():
student_grades = {student}
for key,value in exam.items():
student_grades.update({key + ':', value})
print(student_grades)
#This is what I'd like my result to look like:
({'Student1': {'Exam1': 80}}, {'Student1': {'Exam2': 80}}, {'Student1': {'Exam3': 70}}, {'Student2': {'Exam1': 90}}, {'Student2': {'Exam2': 70}}, {'Student2': {'Exam2': 65}})
#But this is what it actually looks like:
{65, 'Student2', 90, 70, 'Exam3:', 'Exam1:', 'Exam2:'}
您可以使用字典上的
for
循环来迭代键。而且,似乎你最终想要的是一个充满小字典的元组。因此,通过将student_grades
设置为空括号来生成Python元组;将其设置为空大括号的方式{}
使其成为空Python字典或集。你知道吗我个人更喜欢列表(
[]
)而不是元组(()
)。Python可以让您在元素中动态地执行for循环。所以这里有一种方法可以用一个命令将所有内容都放到一个列表中。你知道吗编辑(在评论中回答问题):我不知道你所说的“空列表作为字典”是什么意思。在Python中,列表和字典是两种不同的东西。在“This is what I'd my result to look like:”之后的原始示例中,您有一个元组,而不是字典(或列表)。请注意,整个过程是用括号括起来的,而不是大括号。如果你想
student_grades
也成为一本字典,那么下一个问题就是你想要它的键是什么。如果您想让它们成为学生的名字,那么您希望它与最初的名为student
的字典有什么不同呢?你知道吗相关问题 更多 >
编程相关推荐