如何在python中对字符串列表进行排序,而忽略这些字符串中的数字?

问题描述 投票:-1回答:1

我想用python对字符串列表进行排序,但是排序脚本应该忽略这些字符串中包含的数字。此类列表的示例可以在下面找到:

列表= ['aaa','1aaa','abc','2abc','3abc','b2bb','b3bb']

我发现了一个关于stackoverflow的主题,即this one,但这没有回答我的问题。经过更多研究,我发现了这个page,但是我的实现无法正常工作:

import re 

def numbers_sort(file):
    lines = []
    lines += [line for line in open(file).readlines()]
    print(''.join(sorted(lines,  key=lambda key: [x for x in re.sub('^[-+]?[0-9]+$', '')])),end="")

我也一直试图使用isdigit()作为已排序函数的键,但是无济于事。

谢谢您的帮助。

python-3.x string list sorting digits
1个回答
0
投票

键参数需要一个转换一个字符串的函数。

def numbers_sort(filename):
    with open(filename) as lines:
        print(''.join(sorted(lines,  key=lambda s: re.sub('[-+]?[0-9]+', '', s))), end="")
© www.soinside.com 2019 - 2024. All rights reserved.