python对整数和字符串元组列表进行排序
给定一个包含整数和字符串的元组列表,我需要找到一种方法来从高到低排序,而不使用 sorted 函数。
所以如果我有:
list = [(1, 'orange'), (3, 'banana'), (2, 'pear'), (1, 'apple')]
我应该得到按数字排序的结果,如果数字相同,则按字母顺序排序,比如:
['banana', 'pear', 'apple', 'orange']
有没有办法在不使用 sorted 函数和 sort 方法中的参数的情况下做到这一点?我还是 Python 初学者,完全不知道该如何入手这个问题,任何帮助都非常感谢。
1 个回答
1
不使用 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']