如果我的名单是
[(‘IL’,36),(‘NJ’,81),(‘CA’,81),(‘DC’,52),(‘TX’,39)],
我怎样才能对它进行排序以便我的结果如此
[(‘CA’,81),(‘NJ’,81),(‘DC’,52),(‘TX’,39),(‘IL’,36)]?
最佳答案 非常直截了当:
your_list.sort(key=lambda e: (-e[1], e[0]))
例如
>>> your_list = [('IL', 36), ('NJ', 81), ('CA', 81), ('DC', 52), ('TX', 39)]
>>> your_list.sort(key=lambda e: (-e[1], e[0]))
>>> your_list
[('CA', 81), ('NJ', 81), ('DC', 52), ('TX', 39), ('IL', 36)]
请注意,上面对列表进行了排序.如果要将其包装在函数中而不是修改原始列表,请使用sorted
def your_sort(your_list):
return sorted(your_list, key=lambda e: (-e[1], e[0]))