python3 cmp函数 取消_Python3之字符串比较——重写cmp函数

由于在C ++中习惯了使用CMP函数,所以在遇到字符串排序时,想当然的去使用sort(开始,结束,CMP)去对列表进行排序,但结果好像不行。

后来查阅网上资料,好像在python3中CMP函数已经被取代了。故而只能另求他法了。下面是很简单的一个字符串日期提取及根据日期排序。需求是这样的,由于从文本中读入的字符串是无序的,但在输出时需要按时间前后输出。不多说,直接上代码。

#!/usr/bin/python

#_*_coding:utf-8_*_

import functools

import re

def cmp(str1,str2):

day1 = (re.search(r'\d{4}_\d{2}_\d{2}', str1)).group()

day2 = (re.search(r'\d{4}_\d{2}_\d{2}', str2)).group()

start1 = (re.search(r'Start\d', str1)).group()

start2 = (re.search(r'Start\d', str2)).group()

if day1 > day2:

return 1

elif day1 < day2:

return -1

elif start1 > start2:

return 1

elif start1 < start2:

return -1

else:

return 0

if __name__ == '__main__':

strList = [r"STRLIST2018_07_30\Start0",

r"STRLIST2018_05_01\Start0",

r"STRLIST2018_06_30\Start1",

r"STRLIST2018_05_01\Start1",

r"STRLIST2018_05_30\Start0",

r"STRLIST2018_06_01\Start0",

r"STRLIST2018_06_30\Start0",

r"STRLIST2018_05_30\Start1",

r"STRLIST2018_07_30\Start1",

r"STRLIST2018_06_01\Start1"

]

print("Is not sorted--------------")

for i in strList:

print(i)

strList = sorted(strList,key = functools.cmp_to_key(cmp))

print("Has sorted-----------------")

for i in strList:

print(i)

以上为自定义排序的一个小小实现,对于自定义排序,本小白主要用于对自定义结构体的数组,字典等的排序,以后会用于更多地方。

欢迎大家给予指导意见或者共同讨论编程之乐趣,希望能两三猿友,共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值