如何从高到低对多位数字典值进行排序

2024-03-29 12:02:13 发布

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

有没有办法用多个数字对字典值进行排序?我尝试过这里使用的方法:How to sort a dictionary to print from highest value to lowest for each key?,但它只适用于整数值的个位数。例如,我的代码当前如下所示:

for line in students:
        student = line.split(' ')
        d[student[1]] = (student[3])
        print (d)
     od = sorted(d.items(), key=lambda x: x[1], reverse=True)
     print(od)

其中students是此文本文件的.readlines()的结果,我使用第一个分数:

^{pr2}$

丹尼应该是字典中的第一个条目,但是我的实际输出是:

[('kirsty', '9'), ('bruce', '7'), ('anne', '4'), ('danny', '10'), ('charlie', '1')]

谁能帮忙吗?在


Tags: to方法keyfor字典排序line数字
2条回答

更改键函数以将计算排序的值转换为数字。假设您只使用整数,那么排序行应该是:

od = sorted(d.items(), key=lambda x: int(x[1]), reverse=True)

您需要转换为ints进行比较。你看到的行为是比较字符串。在

例如-

sorted(d.items(), key = lambda x: int(x[1]), reverse  = True)

相关问题 更多 >