python如何為list實(shí)現(xiàn)find方法
如何為list實(shí)現(xiàn)find方法
string類型的話可用find方法去查找字符串位置:
a_list.find('a')如果找到則返回第一個(gè)匹配的位置,如果沒(méi)找到則返回-1,而如果通過(guò)index方法去查找的話,沒(méi)找到的話會(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類型
''.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分割單詞和轉(zhuǎn)換命名法的實(shí)現(xiàn)
本文主要介紹了Python分割單詞和轉(zhuǎn)換命名法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
pycharm如何設(shè)置自動(dòng)生成作者信息
這篇文章主要介紹了pycharm如何設(shè)置自動(dòng)生成作者信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
python實(shí)現(xiàn)tree命令的使用示例
本文主要介紹了python實(shí)現(xiàn)tree命令的使用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
詳解Python是如何實(shí)現(xiàn)issubclass的
這篇文章主要介紹了詳解Python是如何實(shí)現(xiàn)issubclass的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
django中的auth模塊與admin后臺(tái)管理方法
這篇文章主要介紹了django中的auth模塊與admin后臺(tái)管理方法,包括auth模塊的常用方法及如何擴(kuò)展auth_user表,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Pytorch pth 格式轉(zhuǎn)ONNX 格式的詳細(xì)過(guò)程
PyTorch 訓(xùn)練的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一個(gè)比較好的方式是把它轉(zhuǎn)換成ONNX 格式,然后在通過(guò)ONNX 轉(zhuǎn)換成TensorRT 格式,這篇文章主要介紹了Pytorch pth 格式轉(zhuǎn)ONNX 格式,需要的朋友可以參考下2023-05-05
python產(chǎn)生模擬數(shù)據(jù)faker庫(kù)的使用詳解
這篇文章主要介紹了python產(chǎn)生模擬數(shù)據(jù)faker庫(kù)的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

