網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
如何為list實(shí)現(xiàn)find方法
string類(lèi)型的話(huà)可用find方法去查找字符串位置:
a_list.find('a')
如果找到則返回第一個(gè)匹配的位置,如果沒(méi)找到則返回-1,而如果通過(guò)index方法去查找的話(huà),沒(méi)找到的話(huà)會(huì)報(bào)錯(cuò)。
如果我們希望在list中也使用find呢?
方法1:獨(dú)立函數(shù)法
def list_find(item_list, find_item):
? ? if find_item in item_list:
? ? ? ? return item_list.index(find_item)
? ? return -1
item_list=[1,2,3]
print(list_find(item_list,1),list_find(item_list,4))
缺點(diǎn):代碼太多,麻煩
方法2:if三元表達(dá)式(本質(zhì)同上)
item_list.index(find_item) if find_item in item_list else -1
優(yōu)點(diǎn):簡(jiǎn)單,明了
缺點(diǎn):item_list在上面出現(xiàn)兩次,想想一下,如果item_list是一個(gè)比較長(zhǎng)表達(dá)式的結(jié)果(或者函數(shù)結(jié)果),則會(huì)導(dǎo)致代碼過(guò)長(zhǎng),且會(huì)執(zhí)行2次
方法3:next(利用迭代器遍歷的第二個(gè)參數(shù))
next((item for item in item_list if item==find_item ),-1)
缺點(diǎn):如果對(duì)迭代器不熟悉,不大好理解
優(yōu)點(diǎn):擴(kuò)展性好,if后面的條件可以不只是相等,可支持更為復(fù)雜的邏輯判斷
方法4:list元素bool類(lèi)型
''.join(map(str, map(int, item_list))).find(str(int(True)))
簡(jiǎn)單容易理解
Python List find方法報(bào)錯(cuò)
TypeError: 'str' does not support the buffer interface
deviceList[1].find('device')?
List使用find方法時(shí),報(bào)錯(cuò)誤:
TypeError: 'str' does not support the buffer interface
In python 3, bytes strings and unicodestrings are now two different types. Bytes strings are b"" enclosed strings
上述語(yǔ)句改為:deviceList[1].find(b'device') 就好了,加了個(gè)小b
原文鏈接:https://blog.csdn.net/u011331731/article/details/107898634
相關(guān)推薦
- 2022-07-29 Android錄音功能的實(shí)現(xiàn)以及踩坑實(shí)戰(zhàn)記錄_Android
- 2022-09-20 linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法_linux shell
- 2022-09-17 PyTorch?模型?onnx?文件導(dǎo)出及調(diào)用詳情_(kāi)python
- 2022-07-09 Python實(shí)現(xiàn)功能全面的學(xué)生管理系統(tǒng)_python
- 2022-05-19 C++的內(nèi)聯(lián)函數(shù)你了解嗎_C 語(yǔ)言
- 2023-05-30 python?snap7讀寫(xiě)PLC的操作方法_python
- 2022-06-14 nginx搭建NFS服務(wù)器的方法步驟_nginx
- 2022-11-02 Rust指南枚舉類(lèi)與模式匹配詳解_Rust語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- 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)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支