Python模拟PHP的natSort函数(使用“自然顺序”算法对列表进行排序)
l = ['image1.jpg', 'image15.jpg', 'image12.jpg', 'image3.jpg']l.sort()
['image1.jpg', 'image12.jpg', 'image15.jpg', 'image3.jpg']
['image1.jpg', 'image3.jpg', 'image12.jpg', 'image15.jpg']
更新
def try_int(s): "Convert to integer if possible." try: return int(s) except: return sdef natsort_key(s): "Used internally to get a tuple by which s is sorted." import re return map(try_int, re.findall(r'(\d+|\D+)', s))def natcmp(a, b): "Natural string comparison, case sensitive." return cmp(natsort_key(a), natsort_key(b))def natcasecmp(a, b): "Natural string comparison, ignores case." return natcmp(a.lower(), b.lower())l.sort(natcasecmp);
眼眸繁星
浮云间
相关分类