【发布时间】:2020-05-11 10:09:49
【问题描述】:
我的目录中有一个HTML 文件列表,使用glob 获得,它们的模式为numb-filenames。我想通过数字sort list
string 中的len 是 76。我无法全部复制,但这里有几个:
['50-Rcompat.html',
'51-tang.html',
'52-rectgw.html',
'53-wea.html',
'54-PTect.html',
'55-R+V Allg.html',
'56-SafetyCa.html',
'57-TEI.html',
'58-TAS.html',
'59-TrPr.html',
'6-sde.html',
'60-weac.html',
'61-WKra.html',
'62-KCV .html',
'63-Wdenbu.html',
'64-TGARA.html',
'65-BiV.html',
'66-BURG.html',
'67-richI.html',
'7-pril.html',
'8-spario.html',
'9-Weal.html']
这是我的尝试:
sorted(df, key=lambda x: re.findall("\d+",x))
【问题讨论】:
-
您的解决方案几乎在那里:
re.findall将返回一个字符串列表,因此它们仍将作为字符串排序,然后您需要将它们转换为数字,以便它们按数字排序。一个完整的findall也太过分了,因为你只有一个数字,search/match甚至一个简单的str.split都可以。
标签: python python-3.x string list