老实说,我真的很难解释我在做什么,因为我想不出能帮助我描述它的词语。不管怎样,问题是我想对列表进行排序:
[['a', [10, 6, 5]], ['b', [7, 4, 2]], ['c', [10, 6, 4]], ['d', [7, 3, 2]]]
这是我要排序的列表的一个例子。字符串是学生的名字,其中有三个整数的列表就是分数。我想用分数从高到低对这个列表进行排序,但是如果两个列表的第一个整数相同(例如:
^{pr2}$然后它应该决定哪一个应该比下一个整数高。我试过许多不同的方法,但从我所尝试的来看,没有一种有效。我也很难找到答案,因为我不知道该如何解释我的问题,尽管我希望我上面所说的已经足够解释我的问题了。在
如果需要查看我的代码: MY CODE
reverse
排序的方法支持逆序排序。在实施
输出 [['a',[10,6,5]],['c',[10,6,4]],['b',[7,4,2]],['d',[7,3,2]]]
您可以使用
sorted
函数的key
参数,并按每个子列表的第二个元素排序。这将为每个子列表从元素0到元素N排序。并且reverse
参数是这样您可以从最高到最低排序(而不是默认的从最低到最高)您还可以将
lambda
替换为@ThiefMaster指出的键参数的lambda
。在您只需指定一个键函数,返回所需的所有键。在您的例子中,每个列表的第二个元素(例如
[10, 6, 5]
)完成了这项工作,因为比较列表逐个元素地比较它们。在itemgetter(1)
与lambda x: x[1]
相同,但性能更好(因为它是在Python的C代码中实现的,而不是在Python代码中实现的)。在相关问题 更多 >
编程相关推荐