如何在Python 3中对该列表进行排序?

时间:2019-01-30 19:17:55

标签: python python-3.x

我正在制作排行榜,目前我正在从txt文件中获取数据并将其转储到列表中。

列表的格式如下:

[['56', 'UsernameA'], ['73', 'UsernameB'], ['52', 'UsernameC'], ['10', 'UsernameD']]

我想创建一个排行榜,因此我想从最高编号到最低编号进行排序,我尝试使用sort()函数,但是该方法仅适用于整数,并且我的列表包含用户名和分数,因此除非我完全错误,否则无法将其转换为整数。

1 个答案:

答案 0 :(得分:0)

您是正确的,可以使用sorted()函数或.sort()方法。

我可以看到两个选项以您想要的方式进行排序;都需要根据子列表的第一个元素进行排序;必须将其转换为整数。

然后,您可以直接基于此启发式方法,但是随后您将不得不使用reverse=True作为函数的参数,以便获得从高到低的排序。或者,您可以使用一些技巧,并根据这些整数的负数进行排序:)。

l = [['56', 'UsernameA'], ['73', 'UsernameB'], ['52', 'UsernameC'], ['10', 'UsernameD']]
l.sort(key=lambda j: -int(j[0]))

l修改为:

[['73', 'UsernameB'], ['56', 'UsernameA'], ['52', 'UsernameC'], ['10', 'UsernameD']]