Python根据内嵌的数字将字符串排序(sort by numbers embedded in strings)
import re
re_digits = re.compile(r'(\d+)')
def embedded_numbers(s):
pieces = re_digits.split(s) # 切成数字与非数字
pieces[1::2] = map(int, pieces[1::2]) # 将数字部分转成整数
return pieces
def sort_strings_with_embedded_numbers(alist):
return sorted(alist, key=embedded_numbers)
files = '12 2 56 345 12'.split( )
new_list=sort_strings_with_embedded_numbers(files)
str=' '.join(new_list)
print(str)
import re
re_digits = re.compile(r'(\d+)')
def embedded_numbers(s):
pieces = re_digits.split(s) # 切成数字与非数字
pieces[1::2] = map(int, pieces[1::2]) # 将数字部分转成整数
return pieces
def sort_strings_with_embedded_numbers(alist):
return sorted(alist, key=embedded_numbers)
files = 'file3.txt file11.txt file7.txt file4.txt file15.txt'.split( )
new_list=sort_strings_with_embedded_numbers(files)
str=' '.join(new_list)
print(str)
chrfiles = [ 'chr9.txt', 'chr10.txt', 'chr1.txt', 'chr3.txt', 'chr11.txt' ]
chrfiles.sort(key = lambda x:int(re.match('\D+(\d+)\.txt',x).group(1)))
chrfiles
chrfiles = [ '9.txt', '10.txt', '1.txt', '3.txt', '11.txt' ]
chrfiles.sort(key = lambda x:int(re.match('(\d+)\.txt',x).group(1)))
chrfiles
chrfiles = [ '9', '10', '1', '3', '11' ]
chrfiles.sort(key = lambda x:int(re.match('(\d+)',x).group(1)))
chrfiles
最新文章
- 如何取消 DiscuzX 帖子被系统自动隐?
- Asp.net MVC 的八个扩展点
- 八皇后,回溯与递归(Python实现)
- c语言学习感想
- Future 模式介绍
- 编写高质量代码改善C#程序的157个建议
- POJ 3468 A Simple Problem with Integers(线段树)
- Google面试题:计算从1到n的正数中1出现的次数
- hdu 5056 Boring count
- POI 3.8读取2003与2007格式EXCEL(xls、xlsx)
- ArcGIS 网络分析[1.2] 利用1.1的线shp创建网络数据集/并简单试验最佳路径
- CSS(CSS3)选择器(1)
- CodeForces 1B-字符串,进制转换与数学
- php+xdebug远程调试(单人)
- Unity3D Shader 模型流光效果
- 配置Flink依赖的pom文件时报错:flink-clients_2.11 &; flink-streaming-java_2.11
- 2018.10.22 bzoj4380: [POI2015]Myjnie(区间dp)
- 使用MySQLMTOP监控MySQL性能(一)
- Nginx教程(五) Nginx配置文件详解
- 简述对Vuex的理解