python自定义排序列表1/2/3/../9/10

2024-09-27 09:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python列表,文件名如下:[name1, name10, name11, name2, name3, ..., name9]。在

我希望它像[name1, name2, name3, ..., name10, name11]那样排序。在

我该怎么做?在

我知道我可以使用一个特殊的键函数(sorted(files, key=lambda name: etc.)),但我不确定要应用哪个函数。在

谢谢你的帮助!在


Tags: lambdakey函数name列表排序文件名files
3条回答

如果您正在寻找与sorted函数一起使用的lambda表达式,并且知道您的条目的形式为“nameXXXXX”:

sorted(names, key=lambda name: int(name[4:]))

尝试使用第三方库进行自然字符串排序调用natsort。在

>>> import natsort
>>> my_list = [...]
>>> natsort.natsorted(my_list)

也可以使用key参数指定排序键。在

^{pr2}$

试试这个:

sorted(aList, key= lambda x: (lambda a, _, b: (a, int(b)) if b.isdigit() else (float("inf"), x))(*x.partition(" ")))

这将按照你的要求工作。它也不需要任何第三方库。在

相关问题 更多 >

    热门问题