Python:排序列表由(int,string)对组成,按int降序排列,按字符串升序排列?



如何对由(int,string(对组成的列表进行排序,按int降序,按字符串升序?

您可以将sorted与自定义key参数一起使用。在这种情况下,否定int将导致下降行为,然后离开str这将导致上升行为。将它们放在元组中将允许字典排序行为,如果第一个键(int(相同。

>>> data = [(1, 'hello'), (7, 'bar'), (4, 'foo'), (4, 'world')]
>>> sorted(data, key=lambda i: (-i[0], i[1]))
[(7, 'bar'), (4, 'foo'), (4, 'world'), (1, 'hello')]

最新更新