python排序int,str的元组列表

时间:2014-03-25 07:33:58

标签: python

给定int,str的元组列表,我需要找到一种从最高到最低排序的方法,而不使用sorted。 如果我有:

list = [(1, 'orange'), (3, 'banana'), (2, 'pear'), (1, 'apple')]

我应该按照数字排序,如果数字相同,则按字母顺序排列,如:

['banana', 'pear', 'apple', 'orange']

有没有办法在不使用sorted函数和在sort方法中使用参数的情况下执行此操作?我是python的初学者,我不知道如何处理这个问题,非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

不使用sorted()意味着我们必须再使用一行,但以下是您可以这样做的方法:

>>> your_tuples = [(1, 'orange'), (3, 'banana'), (2, 'pear'), (1, 'apple')]
>>> your_tuples.sort(key=lambda x: (-x[0], x[1]))
>>> [t[1] for t in your_tuples]
['banana', 'pear', 'apple', 'orange']