Python 如何对列表进行数字排序而不是字母排序?

Python 如何对列表进行数字排序而不是字母排序?,python,sorting,Python,Sorting,我有一段python代码,需要修改它以执行稍微不同的任务。到目前为止,它从一个网页上获取了某一年最受欢迎的婴儿名字的列表,并按字母顺序打印出所有最受欢迎的名字及其排名。需要修改的是,代码不是按字母顺序打印列表,而是按从最低级别999到最高级别1的顺序打印列表 代码: 对我来说,做这件事的最佳方式是什么?为什么?我对Python非常陌生,在完全理解某些函数时仍有一些困难。您应该将秩发送到排序函数的关键参数。这将按等级排序,而不是按字母顺序 范例- >>> d = {'a':5,'

我有一段python代码,需要修改它以执行稍微不同的任务。到目前为止,它从一个网页上获取了某一年最受欢迎的婴儿名字的列表,并按字母顺序打印出所有最受欢迎的名字及其排名。需要修改的是,代码不是按字母顺序打印列表,而是按从最低级别999到最高级别1的顺序打印列表

代码:


对我来说,做这件事的最佳方式是什么?为什么?我对Python非常陌生,在完全理解某些函数时仍有一些困难。

您应该将秩发送到排序函数的关键参数。这将按等级排序,而不是按字母顺序

范例-

>>> 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)

为什么不使用html解析器?不需要继续调用。键,您创建的不是不必要的列表,就是dictview ObjectsOrry不理解的,他想要排序的名称,这些名称是键,这就是为什么我调用它们就像他调用代码一样。我只是对他的代码做了最小的更改,使其正常工作。调用sortedd就足够了,你不必使用k in d.keys当你想迭代这些键时,调用sortedOh也没什么不同。好的,是的,但是如果我们对他的代码做更多的更改来改进它,我相信在这种情况下,带键参数的排序函数的实际点会变得不那么重要
sorted_names = sorted(rankednames.keys(), key=lambda x: int(rankednames[x]), reverse=True)