2024-09-27 09:30:30 发布
网友
我有一个python列表,文件名如下:[name1, name10, name11, name2, name3, ..., name9]。在
[name1, name10, name11, name2, name3, ..., name9]
我希望它像[name1, name2, name3, ..., name10, name11]那样排序。在
[name1, name2, name3, ..., name10, name11]
我该怎么做?在
我知道我可以使用一个特殊的键函数(sorted(files, key=lambda name: etc.)),但我不确定要应用哪个函数。在
sorted(files, key=lambda name: etc.)
谢谢你的帮助!在
如果您正在寻找与sorted函数一起使用的lambda表达式,并且知道您的条目的形式为“nameXXXXX”:
sorted
sorted(names, key=lambda name: int(name[4:]))
尝试使用第三方库进行自然字符串排序调用natsort。在
natsort
>>> import natsort >>> my_list = [...] >>> natsort.natsorted(my_list)
也可以使用key参数指定排序键。在
key
试试这个:
sorted(aList, key= lambda x: (lambda a, _, b: (a, int(b)) if b.isdigit() else (float("inf"), x))(*x.partition(" ")))
这将按照你的要求工作。它也不需要任何第三方库。在
如果您正在寻找与
sorted
函数一起使用的lambda表达式,并且知道您的条目的形式为“nameXXXXX”:尝试使用第三方库进行自然字符串排序调用
natsort
。在也可以使用
^{pr2}$key
参数指定排序键。在试试这个:
这将按照你的要求工作。它也不需要任何第三方库。在
相关问题 更多 >
编程相关推荐