2024-10-02 00:23:50 发布
网友
例如,我有列表
my_list= ['image101.jpg', 'image2.jpg', 'image1.jpg']
以及
给了我
['image1.jpg', 'image101.jpg', 'image2.jpg']
但我当然需要
['image1.jpg', 'image2.jpg', 'image101.jpg']
怎么做?在
实际上你不需要任何regexpatern。你可以像那样很容易地解析。在
regex
>>> 'image101.jpg'[5:-4] '101'
解决方案:
使用正则表达式从字符串中提取数字并转换为int:
import re r = re.compile("\d+") l = my_list= ['image101.jpg', 'image2.jpg', 'image1.jpg'] l.sort(key=lambda x: int(r.search(x).group()))
或者使用更具体的正则表达式,包括.:
.
两者都为示例输入提供相同的输出:
如果确定扩展名,可以使用非常特定的正则表达式:
r = re.compile("(\d+)\.jpg$") l.sort(key=lambda x: int(r.search(x).group(1)))
^{}接受可选的key函数。每个项都传递给函数,函数的返回值用于比较项而不是原始值。在
key
>>> my_list= ['image101.jpg', 'image2.jpg', 'image1.jpg'] >>> my_list.sort(key=lambda x: int(''.join(filter(str.isdigit, x)))) >>> my_list ['image1.jpg', 'image2.jpg', 'image101.jpg']
^{},^{}用于提取数字:
实际上你不需要任何
regex
patern。你可以像那样很容易地解析。在解决方案:
^{pr2}$使用正则表达式从字符串中提取数字并转换为int:
或者使用更具体的正则表达式,包括
^{pr2}$.
:两者都为示例输入提供相同的输出:
如果确定扩展名,可以使用非常特定的正则表达式:
^{} 接受可选的
key
函数。每个项都传递给函数,函数的返回值用于比较项而不是原始值。在^{} ,^{} 用于提取数字:
^{pr2}$相关问题 更多 >
编程相关推荐