Python Cookbook 5.5: 根据内嵌数字将字符串排序

Python默认字符串排序是基于字母的。更好的方法是把文件按数字分解成一个list,并把数字项替换成int型,最后按分解后的list进行排序。

 1 import re
 2 
 3 filenames = [ 'file10.txt', 'file1.txt', 'file2.txt',\
 4                     'file04.txt', 'afile12.txt']
 5 
 6 rx_digit = re.compile(r'(\d+)')
 7 
 8 def mapper(filename):
 9     aux = rx_digit.split(filename)
10     aux[1::2] = map(int, aux[1::2])
11     return aux
12 
13 print sorted(filenames, key=mapper)

 

posted on 2012-12-25 21:13  rongyilin  阅读(246)  评论(0编辑  收藏  举报

导航