我想用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()作为已排序函数的键,但是无济于事。
谢谢您的帮助。
键参数需要一个转换一个字符串的函数。
def numbers_sort(filename):
with open(filename) as lines:
print(''.join(sorted(lines, key=lambda s: re.sub('[-+]?[0-9]+', '', s))), end="")