列表中字符串按照某种规则排序的方法(python)

列表中字符串按照某种规则排序的方法(python)

有时候处理数据时,想要按照字符串中的数字的大小进行排序。

譬如,存在一组记录文件,分别为‘1.dat’,’2.dat’…

当我把该文件夹中的所有记录文件名读到一个列表中,这些字符串的排列方式为:

<span>列表中字符串按照某种规则排序的方法(python)</span>

如何让这些字符串按照数字排列?

1、首先通过正则表达式,提取出字符串中的数字

2、排序,选择built-in函数sorted进行排序

sorted(iterable, cmp=None, key=None, reverse=False)

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。

 

所以说排序方式按照数字拍的话,key就要对应里面的数字。

所以,这个问题只需一句话解决:

s = ['1.dat','10.dat','5.dat']
new = sorted(s,key = lambda i:int(re.match(r'(\d+)',i).group()))
print new

 得到的结果即为

<span>列表中字符串按照某种规则排序的方法(python)</span>

 对于该操作,同样可以使用list.sort(),python2.4之后,list.sort和sorted都添加了一个key参数用来指定一个函数

不同的地方是:内置sorted返回一个新的列表,而list.sort是对列表进行操作

s = ['1.dat','10.dat','5.dat']
s.sort(key = lambda i:int(re.match(r'(\d+)',i).group()))
print s

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119496.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android swiperefreshlayout 自定义,SwipeRefreshLayout 的使用详解

    android swiperefreshlayout 自定义,SwipeRefreshLayout 的使用详解SwipeRefreshLayout作为谷歌官方推荐的下拉刷新控件,同时简单而又不失优雅的风格,让许多app都使用了这一控件,今天记录下SwipeRefreshLayout在项目中的实际运用。首先,我们在布局文件中使用:android:id=”@+id/swipeRefreshLayout”android:layout_width=”match_parent”android:layout_heig…

    2022年6月25日
    28
  • vscode注释快捷键失效_qt注释快捷键

    vscode注释快捷键失效_qt注释快捷键注释有两种,如果是单行注释,可以使用快捷键【ctrl】+【/】来注释。这样就能单行注释代码,样式为://Wearedevelopers注释错了想要取消,再按一遍即可。如果是多行注释(块注释),那么快捷键为【Alt】+【Shift】+【A】样式为:/*Wearedevelopers*/同样的再按一遍即可取消。你也可以选择代码,使用上方菜单的【编辑】来手动注释代码。

    2022年8月15日
    9
  • rest接口测试工具_常用的自动化测试框架

    rest接口测试工具_常用的自动化测试框架REST API 自动化测试 利器Rest Assured(API接口自动化测试框架体系)

    2022年4月20日
    57
  • 学术资源不定期分享-【费曼物理学讲义英文原版】[通俗易懂]

    学术资源不定期分享-【费曼物理学讲义英文原版】[通俗易懂]相关资料简介理查德·费曼(全名理查德·菲利普斯·费曼),(1918年5月11日生于美国纽约)他是美国理论物理学家,被广泛认为是二战后他的研究领域中最杰出、最具影响力的人物之一。费曼因他在量子电动力学方面的工作而闻名:他描述了光如何与物质相互作用以及带电粒子如何相互作用。他还设计了粒子如何相互作用的图表(现在称为费曼图)和液氦超流体行为的量子力学解释(接近绝对零度时如何在没有摩擦的情况下流动)。第二次世界大战期间,费曼被聘为普林斯顿大学美国原子弹项目的一名工作人员(1941-42年),后来又在新墨西哥.

    2022年6月6日
    60
  • stat函数详解_stl函数

    stat函数详解_stl函数stat函数讲解表头文件:   #include            #include定义函数:   intstat(constchar*file_name,structstat*buf);函数说明:   通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:     执行成功则返回0,失败返回-1,错误代码存于er

    2022年8月21日
    6
  • git拉取代码如何解决冲突_git拉取代码如何解决冲「建议收藏」

    git拉取代码如何解决冲突_git拉取代码如何解决冲「建议收藏」在使用gitpull代码时,经常会碰到有冲突的情况,提示如下信息:Yourbranchisbehind’origin/master’by123commits,andcanbefast-forwarded.(use”gitpull”toupdateyourlocalbranch)Please,commityourchangesorstashthem…

    2022年8月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号