为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

九州编程 2021-04-01 14:18:23
我对编程以及python都是新手。我一直在尝试实施它,但没有成功,希望您的帮助。我有一本奇怪的键值的字典。我需要将其中一个键用作索引号,将另一个键(即第二个键)用作值,并将字典中存储的值用作第三列。例如,如果字典是{'Michael', 'Student<matriculation no>', 'marks obtained' :  40 }结果应该是这样的Name                  Admission no                 marks obtainedMichael              matriculation no                    40sara                 matriculation no                    60其中,矩阵no是从字典的第二个键提取的值(每个值不同)并持续约100行。请提出一种执行此操作的方法。
查看完整描述

1 回答

?
德玛西亚99

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()改用。


查看完整回答
反对 回复 2021-04-06
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信