python对整数和字符串元组列表进行排序

-1 投票
1 回答
571 浏览
提问于 2025-04-17 23:47

给定一个包含整数和字符串的元组列表,我需要找到一种方法来从高到低排序,而不使用 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']

撰写回答