【发布时间】:2015-07-15 17:14:31
【问题描述】:
我有一个这样的列表:
fruits = ["blueberry", "peach", "applepine", "orange", "pear", "coconut", "lemon"]
我需要按照以下规则对其进行排序:
- 名称包含 5 个或更少字母的水果在前
- 然后,水果按字母倒序排列
这应该给出以下列表:
sorted_fruits = ["pear", "peach", "lemon", "orange", "coconut", "blueberry", "applepine"]
我想对包含字符串的列表应用反向字母排序,但我不能使用可选参数 reverse=True,因为这种情况在我的排序优先级中排在第二位,所以我必须使用 lambda 函数和 key论据。
我该如何处理?
我知道通常我们可以否定int,但我不知道string 对象的技巧,(我想[-ord(i) for i in fruit] 但它看起来很难看)。
【问题讨论】:
-
名字5个字母以下的水果顺序不重要?
-
reversed函数怎么样? -
@AnandSKumar 它们也应该按字母顺序颠倒。
-
有什么理由不简单地排序两次吗?
-
@DSM 在性能方面的“优化”解决方案会更有趣。
标签: python list sorting python-3.x