结果2:杰夫·阿特伍德(Jeff Atwood)的博客介绍了如何正确执行此操作。
这是该答案的代码:
import re
def natural_sort(l):
convert = lambda text: int(text) if text.isdigit() else text.lower()
alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
return sorted(l, key=alphanum_key)
数据结果:
PresserInc-1.jpg
PresserInc-1_10.jpg
PresserInc-1_11.jpg
PresserInc-2.jpg
PresserInc-3.jpg
等等...
看到它在线运行:ideone