在排序的for循环中将引用列表项作为键
抱歉问了个无聊的问题,但我搞不明白这个:
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 f in sorted(os.listdir('.'), key=f.split('.')[0][1:])
,但当然不行。
谢谢大家!
1 个回答
1
你需要用到一个叫做“lambda 表达式”的东西:
sorted(os.listdir('.'), key=lambda f: int(f.split('.')[0][1:]))