首页 > 解决方案 > 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 等。这可以使用开箱即用的功能来完成,还是有人可以提供他们可以提供的解决方案?

首先十分感谢。

标签: pythonpython-3.xlist

解决方案


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']


推荐阅读