使用导入库按键排序字典只返回第一个数字的排序值

2024-06-26 13:04:10 发布

您现在位置:Python中文网/ 问答频道 /正文

程序说明:

  • 读学生的名字和标记,并把它存到字典里
  • 根据字典的价值给学生排序
  • 对排名前三的学生给予现金奖励
  • 对得分超过950分的学生写感谢信

enter image description here

我使用了运算符库为学生标记记录程序对词典进行排序,但由于我是根据标记对词典进行排序,因此似乎仅根据第一个数字(从左到右)对词典进行排序,如下所示:

enter image description here

例如,如果提供的标记是700,80,9,则将标记排序为9,80700。 我猜代码只是检查第一个数字,如果发现它大于另一个数字的第一个数字(尽管第二个数字大于第一个数字),第一个数字只会显示为更大。你知道吗


Tags: 代码标记程序字典排序记录运算符数字
3条回答

您是基于字符串值而不是整数值排序的。你需要把标记转换成整数。按整数排序时,855>;9。当它们像字符串一样排序时,情况并非如此。你知道吗

首先,不要上传你的代码截图。使用编辑器上的代码示例图标发布实际代码。也只包括有问题的函数-秩。你知道吗

以下所有代码都位于rank函数的顶部。你知道吗

首先,将每个元组的数字元素转换为int:

students2 = [(a,int(b)) for (a,b) in student]

然后替换ranked = sorted(students.items(), key=operator.itemgetter(1),reverse=True)

sorted(student2, key=lambda x:x[1], reverse=True)

作为奖励,不需要运算符依赖性。你知道吗

您正在输入字符串形式的数字。正如你所看到的,dict用引号表示数字。你必须把数字输入为wither int或float。你知道吗

value = int(input("enter the value: "))

相关问题 更多 >