如何对 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="")
我想对 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="")