如果我有一个字符串列表,例如["a143.txt", "a9.txt", ]
如何按列表中的数字而不是字符串按升序对其进行排序。 IE。我想"a9.txt"
出现在之前"a143.txt"
since 9 < 143
.
thanks.
这就是所谓的“自然排序”,
从http://www.codinghorror.com/blog/2007/12/sorting-for- humans-natural-sort-order.html
尝试这个:
import re
def sort_nicely( l ):
""" Sort the given list in the way that humans expect.
"""
convert = lambda text: int(text) if text.isdigit() else text
alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
l.sort( key=alphanum_key )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)