python如何為list實(shí)現(xiàn)find方法
如何為list實(shí)現(xiàn)find方法
string類型的話可用find方法去查找字符串位置:
a_list.find('a')如果找到則返回第一個(gè)匹配的位置,如果沒找到則返回-1,而如果通過index方法去查找的話,沒找到的話會報(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):簡單,明了
缺點(diǎn):item_list在上面出現(xiàn)兩次,想想一下,如果item_list是一個(gè)比較長表達(dá)式的結(jié)果(或者函數(shù)結(jié)果),則會導(dǎo)致代碼過長,且會執(zhí)行2次
方法3:next(利用迭代器遍歷的第二個(gè)參數(shù))
next((item for item in item_list if item==find_item ),-1)
缺點(diǎn):如果對迭代器不熟悉,不大好理解
優(yōu)點(diǎn):擴(kuò)展性好,if后面的條件可以不只是相等,可支持更為復(fù)雜的邏輯判斷
方法4:list元素bool類型
''.join(map(str, map(int, item_list))).find(str(int(True)))
簡單容易理解
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
上述語句改為: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),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
pycharm如何設(shè)置自動(dòng)生成作者信息
這篇文章主要介紹了pycharm如何設(shè)置自動(dòng)生成作者信息,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
python實(shí)現(xiàn)tree命令的使用示例
本文主要介紹了python實(shí)現(xiàn)tree命令的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
詳解Python是如何實(shí)現(xiàn)issubclass的
這篇文章主要介紹了詳解Python是如何實(shí)現(xiàn)issubclass的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Pytorch pth 格式轉(zhuǎn)ONNX 格式的詳細(xì)過程
PyTorch 訓(xùn)練的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一個(gè)比較好的方式是把它轉(zhuǎn)換成ONNX 格式,然后在通過ONNX 轉(zhuǎn)換成TensorRT 格式,這篇文章主要介紹了Pytorch pth 格式轉(zhuǎn)ONNX 格式,需要的朋友可以參考下2023-05-05
python產(chǎn)生模擬數(shù)據(jù)faker庫的使用詳解
這篇文章主要介紹了python產(chǎn)生模擬數(shù)據(jù)faker庫的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

