1 回答
TA贡献1770条经验 获得超3个赞
您没有多个键。在您的示例中,您的键是元组('Michael', 'Student', 'marks obtained')
(顺便说一句,您的字典语法是错误的:它应该{('Michael', 'Student', 'marks obtained') : 40}
基于您的意思)。
如果可以保证没有两个学生有相同的名字(也许您可能包括姓氏和中间名字的首字母!),那么您可以仅使用他们的名字作为关键字。然后,将值设为元组将是有意义的(matriculation, marks obtained)
。像这样:{"Michael" : ('Student', 40)}
。
当您想打印这些学生时,您可能会说print name, students[name][0], "no", students[name][1]
,students
您的字典在哪里,name
是一个字符串,它是学生的名字,例如'Michael'
。
除了'Student'
顺便说一句,我不确定还有什么可以入学的。在我看来,您不需要包括该值,除非您实际上可以具有其他值。
这里的一个很好的隐喻是认为'Michael'
与他相关的一些数据,即他的入学状态和获得的分数数量。入学状态既不'Michael'
与之相关(特别是),也没有'Michael'
与之相关的40个分数(尤其是),因为这些事情可能发生在其他人身上。因此,正确的密钥是学生的姓名。键应该是唯一的-当它们不是唯一键时,您会遇到称为冲突的问题,其中两个或多个数据(值)与同一事物(键)相关联。
大编辑:
在查看了您编辑过的帖子后,看来您的密钥实际上应该是入学号,因为它永远不会相同。因此,现在您的字典应该是{matriculation_no : (name, marks)}
。现在print students[matriculation_no][0], "Admission", matriculation_no, students[matriculation_no][1]
就是打印或类似的东西。这取决于您是否要"Admission"
在字符串中输入。
如果要写入文件,请file.write()
改用。
添加回答
举报