0

このリストを並べ替えたい:

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

内容に関係なく、正確にそのままです(すべてCAPSアルファを想定)。

>>> 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 に答える