【发布时间】:2021-06-10 09:44:46
【问题描述】:
我有一个可能包含数字的字符串列表。我想按字母顺序对这个列表进行排序,但是每次字符串包含一个数字时,我都希望它按值排序。 例如,如果列表是
['a1a','b1a','a10a','a5b','a2a'],
排序后的列表应该是
['a1a','a2a','a5b','a10a','b1a']
一般来说,我想把字符串中的每个数字(数字序列)当作一个特殊字符,它比任何字母都小,并且可以在数字上与其他数字进行比较。
是否有任何python函数可以紧凑地做到这一点?
【问题讨论】:
-
你如何比较
'ab1c'和'a1ef'? -
假设数字小于字母,我会将字符“1”与字母“b”进行比较,并将“a1ef”放在“ab1c”之前。一般来说,我想将字符串中的每个数字视为一个特殊字符,它比任何字母都小,并且可以在数字上与其他数字进行比较。
-
不能用
mylist.sort()方法吗? -
不,排序会将 'a2a' 放在 'a10a' 之后,尽管 10 大于 2。