如何在python中按两个条件优先排序这两个条件的元组列表

我需要整理类似的东西

列表= [('B',2),('A',6),('D',4),('E',6),('C',2)]

变成:

sorted_list = [('A',6),('E',6),('D',4),('B',2),('C',2)]

因此,首先从具有最高编号的元组开始对它进行排序,然后,如果数字相等,则在第一个元素中按字母顺序对元组进行排序。

因此,就每个元组中的数字而言,优先级从高到低,如果两个或多个值相等,则按字母顺序排列。

评论
回家吃饭
回家吃饭
a = [('B', 2), ('A', 6), ('D', 4), ('E', 6), ('C', 2)]
print sorted(a, key=lambda tup: tup[1], reverse=True)

will print [('A', 6), ('E', 6), ('D', 4), ('B', 2), ('C', 2)]

点赞
评论
后补情人
后补情人

您可以这样做:

sorted([('B', 2), ('A', 6), ('D', 4), ('E', 6), ('C', 2)], key = lambda x: (-x[1],x[0]))

产量:

[('A', 6), ('E', 6), ('D', 4), ('B', 2), ('C', 2)]
点赞
评论