我发现了一个函数,它可以按数字对文件字符串列表进行排序。我在网上找到了这个,效果很好。但是,我想简单地说,这样它就不会全部在一行上完成,而且它对其他人来说更可读。但是,我很难做到这一点,因为我不理解排序函数键,lambda也很好。如有任何帮助,我们将不胜感激。
输入
input_list = ['file_stuff_1','file_stuff_23','file_stuff_4','file_stuff_6']
代码
output = sorted(input_list, key=lambda x: int("".join([i for i in x if i.isdigit()])))
输出
['file_stuff_1','file_stuff_4','file_stuff_6','file_stuff_23']
尝试
这是我第一次尝试。但我不知道如何修复数字,所以它可以作为密钥使用。
def sort_list(input_list):
for item in input_list:
if (item.isdigit()):
digits = int(''.join(item))
output = sorted(input_list,digits)
return output
def get_nums_from_filename(file_name):
digits = [char for char in file_name if char.isdigit()]
return int(''.join(digits))
input_list = ['file_stuff_1','file_stuff_23','file_stuff_4','file_stuff_6']
sorted(input_list, key=get_nums_from_filename)
https://docs.python.org/3/howto/sorting.html#key-功能
";键";sorted((中的param指定了一个函数,该函数应应用于每个项以获得结果值,然后根据相应的结果值对原始值进行排序。