我正在制作排行榜,目前我正在从txt文件中获取数据并将其转储到列表中。
列表的格式如下:
[['56', 'UsernameA'], ['73', 'UsernameB'], ['52', 'UsernameC'], ['10', 'UsernameD']]
我想创建一个排行榜,因此我想从最高编号到最低编号进行排序,我尝试使用sort()
函数,但是该方法仅适用于整数,并且我的列表包含用户名和分数,因此除非我完全错误,否则无法将其转换为整数。
答案 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']]