排序字符串列表并在python中的字母后面放置数字

时间:2014-07-08 05:58:39

标签: python string sorting

我有一个我要排序的字符串列表。

默认情况下,字母的值大于数字(或字符串数​​字),这会将它们放在排序列表中。

>>> 'a' > '1'
True
>>> 'a' > 1
True

我希望能够将所有以数字开头的字符串放在列表的底部。

示例:

未排序列表:

['big', 'apple', '42nd street', '25th of May', 'subway']

Python的默认排序:

['25th of May', '42nd street', 'apple', 'big', 'subway']

请求排序:

['apple', 'big', 'subway', '25th of May', '42nd street']

1 个答案:

答案 0 :(得分:10)

>>> a = ['big', 'apple', '42nd street', '25th of May', 'subway']
>>> sorted(a, key=lambda x: (x[0].isdigit(), x))
['apple', 'big', 'subway', '25th of May', '42nd street']

Python的排序函数采用可选的key参数,允许您指定在排序之前应用的函数。元组按其第一个元素排序,然后按第二个元素排序,依此类推。

您可以阅读有关排序here的更多信息。