引用列表项作为sorted for循环中的键

时间:2011-04-02 21:40:06

标签: python list sorting

抱歉无聊的问题,但我无法弄明白:

for f in sorted(os.listdir('.')): print f

输出:

p1.html
p10.html
p11.html
p12.html
p13.html
p14.html
p15.html
p16.html
p17.html
p18.html
p19.html
p2.html
p20.html
p21.html
p22.html
p3.html
p4.html
...

显然我希望按数字排序,我可以使用此键进行排序:f.split('.')[0][1:]但是如何在此for循环中引用该键?

我尝试了for f in sorted(os.listdir('.'), key=f.split('.')[0][1:]),但当然不起作用

TIA

1 个答案:

答案 0 :(得分:1)

你需要一个lambda表达式:

sorted(os.listdir('.'), key=lambda f: int(f.split('.')[0][1:]))