Python中的条件排序

时间:2018-07-05 13:31:41

标签: python python-2.7 sorting

在Python中,我如何根据条件对两个项目列表进行排序:如果第一项不相等,则进行常规排序(基于第一项的值),如果第一项相等,则基于较大性进行排序的第二项(值越大,越优先):

这样的字典的键:

{(0, 3): (3, 8), (0, 11): (4, 4), (1, 4): (5, 32)}

然后应按以下顺序排序:

[(0, 11), (0, 3), (1, 4)]

1 个答案:

答案 0 :(得分:3)

使用键功能反转第二个元素的排序:

d = {(0, 3): (3, 8), (0, 11): (4, 4), (1, 4): (5, 32)}
print(sorted(d.keys(), key=lambda tup: (tup[0], -tup[1])))  # note the minus
# [(0, 11), (0, 3), (1, 4)]