【发布时间】:2017-06-13 03:55:23
【问题描述】:
我有以下列表
l = ['SRATT', 'SRATW', 'CRAT', 'CRA0', 'SRBTT', 'SRBTW', 'SRAT0', 'SRBT0']
我想按字母顺序排序,添加的规则是末尾包含数字(实际上始终为 0)的字符串必须位于最后一个完全按字母顺序排列的字符串之后(最后一个字母最多为 W)。
我该怎么做? (如果可能,使用sorted 之类的简单方法)
对于这个示例列表,期望的结果是
['CRAT', 'CRA0', 'SRATT', 'SRATW' , 'SRAT0', 'SRBTT', 'SRBTW', 'SRBT0']
例如以下不起作用
sorted(l, key=lambda x: x[-1].isdigit())
因为它将包含最终数字的字符串放在末尾,就像这样
['SRATT', 'SRATW', 'CRAT', 'SRBTT', 'SRBTW', 'CRA0', 'SRAT0', 'SRBT0']
【问题讨论】:
-
字符串是否包含除字母数字以外的其他字符?
标签: python string list sorting alphanumeric