Python

python数字字母混合排序

# -*- coding: utf-8 -*-
# python 3.7.0

import re
def sort_key(s):
    #sort_strings_with_embedded_numbers
    re_digits = re.compile(r'(\d+)')
    # 切成数字与非数字
    pieces = re_digits.split(s)  
    # 将数字部分转成整数
    pieces[1::2] = map(int, pieces[1::2])  
    return pieces

#测试数据:
# _list = [
#     'W6_010_1.jpg',
#     'WA6_000_10.jpg',
#     'W6_000_22.jpeg',
#     'W6_000_2.jpg',
#     'W6_000_03.jpg'
# ]
# _list.sort(key=sort_key)
# print(_list)
# print(sorted(_list,key=sort_key))

留言