【发布时间】:2016-07-19 02:51:54
【问题描述】:
例如,考虑字符串'3a+1+4c+3b'。然后,使用一些正则表达式,将其拆分为['3a','1','4c','3b']。 我如何重新排列该列表,以便对其进行排序,以便将后面没有字母的数字放在列表中的第一位,然后将其余元素按数字/字母组合的递增值排序? 例如,['3a','1','4c','3b'] 变为 ['1','3a','3b','4c']。
编辑:
所以,澄清一下,我确实使用了sorted,但如果我使用它,例如,在2k+1-6j+9i 上,它会变成['1', '2k', '6j', '9i'],你可以看到它不是按字母递增的顺序排序的价值。我希望它改为['1','9i','6j','3k']。
【问题讨论】:
-
只是
sorted适用于您的示例。你能举个更好的例子吗? -
natsorted(s.split('+'))使用 natsort 包。 -
@zondo 将中断大于 9 的整数
-
我猜这个问题的目的是让
['3a','5','4c','2b']排序为['5','3a','2b','4c']。即按字母后缀排序,而不是按整数值排序。 -
@SebastianPaaskeTørholm 是的,你是对的。
标签: python regex string list sorting