0

我想对这个列表进行排序:

>>> L = ['A', 'B', 'C', ... 'Z', 'AA', 'AB', 'AC', ... 'AZ', 'BA' ...]

无论内容如何(假设所有CAPS alpha),都是如此。

>>> L.sort()
>>> L
['A', 'AA', 'AB', 'AC'...]

我怎样才能做到这一点:

>>> L.parkinglot_sort()
>>> L
['A', 'B', 'C', ... ]

我正在考虑测试长度,并对每个长度进行排序,并将所有单独的 1 长度、2 长度、n 长度元素混合L到新的L.

谢谢!

4

1 回答 1

6

那这个呢?

l.sort(key=lambda element: (len(element), element))

它将不仅考虑每个元素,还考虑其长度对列表进行排序。

>>> l = ['A', 'AA', 'B', 'BB', 'C', 'CC']
>>> l.sort(key=lambda element: (len(element), element))
>>> print l
['A', 'B', 'C', 'AA', 'BB', 'CC']
于 2011-12-16T17:00:47.923 回答