【发布时间】:2017-08-11 11:36:13
【问题描述】:
我正在使用 lambda 来修改排序的行为。
sorted(list, key=lambda item:(item.lower(),len(item)))
对包含A1,A2,A3,A,B1,B2,B3,B元素的列表进行排序,结果为A,A1,A2,A3,B,B1,B2,B3。
我预期的排序列表是A1,A2,A3,A,B1,B2,B3,B。
我已经尝试包含len(item) 进行排序,但没有成功。如何修改 lambda 以改为排序结果?
【问题讨论】:
-
你真的需要
lower这个案子吗?这是一个分散注意力的问题。 -
lower 完成了不区分大小写的排序。有没有更好的方法来实现这一点?
-
但是你的数据都是大写的。
-
这些实际上是字符串吗?像
'A1','A2','A3',等或变量?如果变量包含什么? -
我们需要更好地描述您的排序标准,或者至少提供更多示例输入和预期输出示例。
标签: python python-3.x sorting lambda