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

How to sort s list of strings in python ignoring digits in those strings?

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

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

我在Whosebug上找到了一个话题,即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() 作为排序函数的键,但是没有用。

感谢您的帮助。

键参数需要一个函数,它可以转换一个字符串。

def numbers_sort(filename):
    with open(filename) as lines:
        print(''.join(sorted(lines,  key=lambda s: re.sub('[-+]?[0-9]+', '', s))), end="")