根据给定的文本排序python列表

时间:2015-11-10 10:57:48

标签: python

我有以下列表:

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']

2 个答案:

答案 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)

它会工作。