Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按括号中的升序数字对文件进行排序_Python_Sorting_Numbers_Filenames - Fatal编程技术网

Python 如何按括号中的升序数字对文件进行排序

Python 如何按括号中的升序数字对文件进行排序,python,sorting,numbers,filenames,Python,Sorting,Numbers,Filenames,我是新来的,希望你能帮我解决我的问题 我有一个python列表,其中有如下文件夹名: List = ['file_io(0).txt','file_io(1).txt',....,'file_io(13004).txt'] 我想按括号中的升序数字对这些文件进行排序 如果使用排序(列表),则文件的排序方式如下: List = ['file_io(0).txt','file_io(1).txt','file_io(10).txt','file_io(100).txt',...] 有没有人能给我一

我是新来的,希望你能帮我解决我的问题

我有一个python列表,其中有如下文件夹名:

List = ['file_io(0).txt','file_io(1).txt',....,'file_io(13004).txt']
我想按括号中的升序数字对这些文件进行排序

如果使用
排序(列表)
,则文件的排序方式如下:

List = ['file_io(0).txt','file_io(1).txt','file_io(10).txt','file_io(100).txt',...]
有没有人能给我一个建议或解决方案


谢谢。

您可以使用正则表达式从括号中取出数字,将其转换为
int
,然后根据该数值进行排序

>>> List = ['file_io(0).txt', 'file_io(1).txt', 'file_io(97).txt', 'file_io(100).txt', 'file_io(13004).txt']
>>> sorted(List, key=lambda i: int(re.match(r'file_io\((\d+)\).txt', i).group(1)))
['file_io(0).txt', 'file_io(1).txt', 'file_io(97).txt', 'file_io(100).txt', 'file_io(13004).txt']

假设您确定文件命名的结构,请使用此排序键对列表进行排序

lst.sort(key=lambda x:int(x[x.find("(")+1:x.find(")")]))

这回答了你的问题吗?