如何按数字排序列表而不是按字母顺序排序?

时间:2015-06-28 16:18:23

标签: python sorting

我有这个代码(python)需要修改才能执行稍微不同的任务。截至目前,它从网页上获取给定年份中最受欢迎的babynames列表,并按照所有最流行名称的字母顺序打印列表及其排名。所需的修改是代码,而不是按字母顺序打印列表,按照从最低等级(999)到最高等级(1)的顺序打印列表。

代码:

{{1}}

这对我来说最好的方法是什么?为什么?我是Python的新手,在完全理解某些功能方面仍然有些麻烦。

1 个答案:

答案 0 :(得分:0)

您应该将等级发送到key函数的sorted()参数。这将按行列排序,而不是按字母顺序排序。

示例 -

>>> d = {'a':5,'b':4,'c':3,'d':2,'e':1}
>>> sorted(d.keys(),key=lambda x: d[x])
['e', 'd', 'c', 'b', 'a']

在你的情况下,它将成为(最低排名第一,并将排名视为int) -

sorted_names = sorted(rankednames.keys(), key=lambda x: int(rankednames[x]), reverse=True)