python - python中的列表排序 - AAA vs AA等
问题描述
我正在努力将列表排序为对我的业务案例有用的顺序,我一直在使用 sorted() 函数。
使用 sorted 函数时,我的列表如下所示:
['A', 'AA', 'AA', 'AAA', 'AAA', 'AAA', 'C', 'CC', 'CCC', 'D']
但是我需要列表输出以下内容:
['AAA', 'AAA', 'AAA','AA', 'AA','A','CCC','CC', 'C', 'D']
AAA 高于 AA,但 A 高于 CCC 等。这可以使用开箱即用的功能来完成,还是有人可以提供他们可以提供的解决方案?
首先十分感谢。
解决方案
a = ['A', 'AA', 'AA', 'AAA', 'AAA', 'AAA', 'C', 'CC', 'CCC', 'D']
sorted(a, key=lambda x: (x[0], -len(x)))
>>>>['AAA', 'AAA', 'AAA', 'AA', 'AA', 'A', 'CCC', 'CC', 'C', 'D']
推荐阅读
- android - 使布局大小取决于 XML 中的图像大小
- pyspark - 我可以在 zeppelin 的“sh”命令中包含一个变量吗?
- bash - Bash 脚本在意外标记 `(' 错误附近抛出语法错误
- design-patterns - 适配器设计模式,一个 Adaptee 类继承另一个?
- angular - 重新加载页面后重定向到未找到的页面(本地化路由器本地化)
- python - Python的随机使用系统时间如何?
- javascript - 如何使用javascript检查上传到服务器的文件是否为空白?
- django - 如何关联模型并使用它
- perl - 如果文件不存在,则从目录中删除文件时的 Perl 警告
- c++ - 查找数组中重复(重复)数字的索引