網(wǎng)站首頁 編程語言 正文
Python3字符串比較_重寫cmp函數(shù)
由于在C ++中習(xí)慣了使用CMP函數(shù),所以在遇到字符串排序時,想當(dāng)然的去使用sort(開始,結(jié)束,CMP)去對列表進(jìn)行排序,但結(jié)果好像不行。
后來查閱網(wǎng)上資料,好像在python3中CMP函數(shù)已經(jīng)被取代了。
故而只能另求他法了。下面是很簡單的一個字符串日期提取及根據(jù)日期排序。
需求是這樣的,由于從文本中讀入的字符串是無序的,但在輸出時需要按時間前后輸出。
不多說,直接上代碼
#!/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)
以上為自定義排序的一個小小實現(xiàn),對于自定義排序,本小白主要用于對自定義結(jié)構(gòu)體的數(shù)組,字典等的排序,以后會用于更多地方。
字符串比較 cmp op.eq
python3 不再使用cmp(str1,str2)來比較字符串
被operator模塊代替,需要導(dǎo)入模塊。
直接使用cmp,會出現(xiàn)錯誤
如何查看自己的python版本,我的是windows
命令:(注意V一定要大寫)
python -V
python3 比較字符串如下
原文鏈接:https://blog.csdn.net/qq_38328875/article/details/83149341
相關(guān)推薦
- 2022-10-27 LyScript實現(xiàn)指令查詢功能的示例代碼_python
- 2022-04-09 一起來學(xué)習(xí)一下python的數(shù)據(jù)類型_python
- 2022-04-23 es6實現(xiàn)數(shù)組對象深度去重
- 2022-05-28 C語言數(shù)據(jù)結(jié)構(gòu)深入探索順序表_C 語言
- 2022-06-17 docker上快速搭建gitlab、gitlab-runer及實現(xiàn)CI/CD功能_docker
- 2022-08-27 C++中Boost的智能指針weak_ptr_C 語言
- 2022-07-04 反向傳播BP學(xué)習(xí)算法Gradient?Descent的推導(dǎo)過程_相關(guān)技巧
- 2022-06-17 C語言詳解函數(shù)與指針的使用_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支