python如何為list實(shí)現(xiàn)find方法
如何為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
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python編寫(xiě)腳本之pyautogui的安裝和使用教程
pyautogui一個(gè)神奇的圖像自動(dòng)化庫(kù),學(xué)會(huì)之后無(wú)所不能,下面這篇文章主要給大家介紹了關(guān)于python編寫(xiě)腳本之pyautogui的安裝和使用的相關(guān)資料,需要的朋友可以參考下2021-12-12Python函數(shù)式編程藝術(shù)之修飾器運(yùn)用場(chǎng)景探索
本文將詳細(xì)介紹Python修飾器的概念,提供詳細(xì)的示例,并介紹如何使用它們來(lái)優(yōu)化和擴(kuò)展代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11numpy ndarray 取出滿(mǎn)足特定條件的某些行實(shí)例
今天小編就為大家分享一篇numpy ndarray 取出滿(mǎn)足特定條件的某些行實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Alpine安裝Python3依賴(lài)出現(xiàn)的問(wèn)題及解決方法
這篇文章主要介紹了Alpine安裝Python3依賴(lài)出現(xiàn)的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取
ROI區(qū)域又叫感興趣區(qū)域。在機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱(chēng)為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過(guò)Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下2021-12-12Python實(shí)現(xiàn)備份MySQL數(shù)據(jù)庫(kù)的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)備份MySQL數(shù)據(jù)庫(kù)的方法,涉及Python針對(duì)mysql數(shù)據(jù)庫(kù)的連接及基于mysqldump命令操作數(shù)據(jù)庫(kù)備份的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01Python 動(dòng)態(tài)導(dǎo)入對(duì)象,importlib.import_module()的使用方法
今天小編就為大家分享一篇Python 動(dòng)態(tài)導(dǎo)入對(duì)象,importlib.import_module()的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08