列表中字符串按照某种规则排序的方法(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Linux】open函数的参数和作用

    【Linux】open函数的参数和作用一、open函数用来干什么open函数在Linux下一般用来打开或者创建一个文件,我们可以根据参数来定制我们需要的文件的属性和用户权限等各种参数。二、open函数的定义和参数我们首先来看下open函数在Linux下的定义#include#include#includeintopen(constchar*pathnam

    2022年5月26日
    44
  • C语言数组作为函数参数「建议收藏」

    C语言数组作为函数参数「建议收藏」一:数组元素作为函数的实参数组元素就是变量,与普通变量没有区别,将数组元素传送给形参,实现单向的值传递。#include&lt;stdio.h&gt;floatmax(floatx,floaty){ if(x&gt;y) returnx; else returny;}intmain(){ inta[6]={3,2,1,4,9,0}; intm…

    2022年7月11日
    14
  • 微信开放平台网站应用扫码登陆[通俗易懂]

    微信开放平台网站应用扫码登陆[通俗易懂]cookie问题现象:接收微信回调数据后,后端存储cookie,未超出cookie有效期,但cookie在浏览器关闭页面重新打开后消失原因:在微信开放平台填写授权回调域名为xx.com,但在浏览器重新打开页面时,域名默认为www.xx.com,而www.xx.cn无法获取到xx.com的cookie信息,看起来就像cookie消失了一样解决办法:在微信开放平台填写授权回调域名为www….

    2022年6月7日
    28
  • Cisco ACS AAA认证

    Cisco ACS AAA认证ACS认证、授权、审计,以及报文交互

    2022年6月3日
    32
  • 51单片机控制步进电机课设

    51单片机控制步进电机课设步进电机正反转设计设计要求:设置开始、停止以及正反转键。转速以及转向由数码管显示。#include<reg52.h>/*步进电机正反转设计设计要求:设置开始、停止以及正反转键。转速以及转向由数码管显示。步距角=5.625°/64,其意思就是每64个脉冲步进电机就会转5.625度。转一圈的脉冲数为(360/5.625)*64=4096个脉冲计算发送4096/4个脉冲需要的时间t转速=1/t*4rad/s注意:这里由于实际开发板驱动能力不足及

    2022年5月6日
    50
  • 详细AutoEventWireup <@ Page language=c# AutoEventWireup=”false”和“True”>的研究

    详细AutoEventWireup <@ Page language=c# AutoEventWireup=”false”和“True”>的研究@Page里面的属性是ASP.NET页面中最基础的组成部分。可也包涵了很多麻烦在里面,因为种种原因导致必须研究一下这个属性AutoEventWireupAutoEventWireup用我的理解方式是这样:(Auto解释是自动,Event解释是事件,Wire解释关联结构模式,up解释是在上面)个人理解的方式来推断这个属性所实现的功能。首先,从浏览器触发的事件不能理科在本地得

    2022年5月27日
    30

发表回复

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

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