使用密钥之一作为索引并使用其他密钥作为值写入文件

我对编程以及python都是新手。


我一直在尝试实施它,但没有成功,希望您的帮助。


我有一本奇怪的键值的字典。我需要将其中一个键用作索引号,将另一个键(即第二个键)用作值,并将字典中存储的值用作第三列。


例如,如果字典是


{'Michael', 'Student<matriculation no>', 'marks obtained' :  40 }

结果应该是这样的


Name                  Admission no                 marks obtained


Michael              matriculation no                    40


sara                 matriculation no                    60

其中,矩阵no是从字典的第二个键提取的值(每个值不同)


并持续约100行。


请提出一种执行此操作的方法。


九州编程
浏览 173回答 1
1回答

德玛西亚99

您没有多个键。在您的示例中,您的键是元组('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()改用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python