排序字符串列表,忽略ASCII序数值

时间:2011-12-16 16:57:28

标签: python sorting ordinal

我想对此列表进行排序:

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

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

谢谢!

1 个答案:

答案 0 :(得分: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']