有没有办法用多个数字对字典值进行排序?我尝试过这里使用的方法: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')]
谁能帮忙吗?在
更改键函数以将计算排序的值转换为数字。假设您只使用整数,那么排序行应该是:
od = sorted(d.items(), key=lambda x: int(x[1]), reverse=True)
您需要转换为
int
s进行比较。你看到的行为是比较字符串。在例如-
相关问题 更多 >
编程相关推荐