我有以下列表:
l = ['fig_1.png', 'fig_10.png', 'fig_4.png', 'fig_2.png']
排序后预计:
result = ['fig_1.png', 'fig_2.png', 'fig_4.png', 'fig_10.png']
我试过:
result = sorted(l)
但是,
['fig_1.png', 'fig_10.png', 'fig_2.png', 'fig_4.png']
答案 0 :(得分:2)
您无法打印l.sort()
,因为它已就位排序。
使用
l = ['fig_1.png', 'fig_3.png', 'fig_4.png', 'fig_2.png']
l.sort() #this will print none as it is in place and does not return anything
print l
输出:['fig_1.png', 'fig_2.png', 'fig_3.png', 'fig_4.png']
import re
l = ['fig_1.png', 'fig_10.png', 'fig_4.png', 'fig_2.png']
l.sort(key=lambda x:int(re.findall(r"(?<=_)\d+(?=\.)",x)[0]))
print l
答案 1 :(得分:1)
试试这段代码:
result = sorted(l)
它会工作。