给定int,str的元组列表,我需要找到一种从最高到最低排序的方法,而不使用sorted。 如果我有:
list = [(1, 'orange'), (3, 'banana'), (2, 'pear'), (1, 'apple')]
我应该按照数字排序,如果数字相同,则按字母顺序排列,如:
['banana', 'pear', 'apple', 'orange']
有没有办法在不使用sorted函数和在sort方法中使用参数的情况下执行此操作?我是python的初学者,我不知道如何处理这个问题,非常感谢任何帮助
答案 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']