最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何查找所有子串位置

 更新時間:2023年01月03日 10:38:38   作者:cv_lhp  
這篇文章主要介紹了python如何查找所有子串位置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

python 查找所有子串位置

方法1

python 字符串中的find只能返回第一次出現(xiàn)的位置,可以利用find找出多有子串出現(xiàn)的位置:

def find_all(sub,s):
?? ?index_list = []
?? ?index = s.find(sub)
?? ?while index != -1:
?? ??? ?index_list.append(index)
?? ??? ?index = s.find(sub,index+1)
?? ?
?? ?if len(index_list) > 0:
?? ??? ?return index_list
?? ?else:
?? ??? ?return -1

方法2

使用re包來實現(xiàn),直接通過循環(huán)來實現(xiàn),然后返回找到的pattern的起始位置和終止位置。

import re
string = 'You said I was your life. Are you still alive when you lost it?'
pattern = 'you'
for m in re.finditer(pattern, string):
? ? print(m.start(), m.end())?

補充

1、str.find()函數(shù):檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內(nèi),如果是返回開始的索引值,否則返回-1。

str.find(substring, beg=0, end=len(string))

2、str.index()函數(shù):跟find()方法一樣,只不過如果str不在 string中會報一個異常。

str.index(substring, beg=0, end=len(string))

Python小知識:查找子串問題

查找子串

查找一個字符串中是否包含某個關鍵詞(查找子串問題)是很常見的操作。比如:給定一句話s,查找s中是否包含關鍵詞王嘉爾。

今天來說3個相關的方法,以及它們的區(qū)別和優(yōu)缺點。

in 操作符

如果只是為了判斷s中是否包含王嘉爾,最推薦的做法是用in或者not in操作符:

s = '王嘉爾小時候賣過豬'
print('王嘉爾' in s)

s2 = '王嘉爾小時候吃過豬'
print('王嘉爾' in s2)

in操作符返回True或者False,而且運行最快,是首選!

咱們加深一下,每一個Python的操作符背后都有一個魔法方法。當我們使用in操作符的時候,它調(diào)用的是__contains__方法。

如果我們自己定義一個類,也要支持in和not in運算符,只要實現(xiàn)__contains__方法就可以了。

find函數(shù)

s = '王嘉爾小時候賣過豬'
print(s.find('王嘉爾'))
print(s.find('王嘉爾') != -1)

s2 = '王嘉爾小時候吃過豬'
print(s2.find('王嘉爾'))
print(s2.find('王嘉爾') != -1)

運行結果:

0
True
-1
False

find函數(shù)返回子串的下標,如果找不到就返回-1。s中包含王嘉爾,返回下標0。我們可以通過比較返回值和-1來確定是否包含子串。

index函數(shù)

index函數(shù)和find類似,也是返回子串在父串中的下標:

s = '王嘉爾小時候賣過豬'
print(s.index('王嘉爾'))
print(s.index('王嘉爾') != -1)

運行結果是:

0
True

但是index和find有個大的差別,如果父串中沒有包含子串,會報ValueError。

看下面的代碼:

s2 = '王嘉爾小時候吃過豬'
print(s2.index('王嘉爾'))

運行結果是:

ValueError: substring not found

看起來index比較弱,為什么它還有存在的價值呢?因為index是序列(sequence)的方法,在字符串,列表,元組中都可以用,而find是字符串特有的函數(shù)。

小結一下:如果只是看是否存在,直接用in操作符;如果還要找出下標,用find不會報錯,但是index可以應用的范圍更廣。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python實現(xiàn)0到1之間的隨機數(shù)方式

    python實現(xiàn)0到1之間的隨機數(shù)方式

    這篇文章主要介紹了python實現(xiàn)0到1之間的隨機數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 使用python創(chuàng)建圖片格式轉換器的實現(xiàn)步驟

    使用python創(chuàng)建圖片格式轉換器的實現(xiàn)步驟

    本教程將指導如何使用 Python 編寫的圖片格式轉換工具 ImaCon_ter.py,該工具能夠將圖片從一種格式轉換為另一種格式,文章通過代碼示例講解的非常詳細,感興趣的小伙伴跟著小編一起來看看吧
    2024-12-12
  • python3 實現(xiàn)的對象與json相互轉換操作示例

    python3 實現(xiàn)的對象與json相互轉換操作示例

    這篇文章主要介紹了python3 實現(xiàn)的對象與json相互轉換操作,結合實例形式分析了Python3使用json模塊針對json格式數(shù)據(jù)轉換操作的相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • Jupyter notebook 輸出部分顯示不全的解決方案

    Jupyter notebook 輸出部分顯示不全的解決方案

    這篇文章主要介紹了Jupyter notebook 輸出部分顯示不全的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • YOLOv5構建安全帽檢測和識別系統(tǒng)使用詳解

    YOLOv5構建安全帽檢測和識別系統(tǒng)使用詳解

    這篇文章主要為大家介紹了YOLOv5構建安全帽檢測和識別系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Python面向對象類的繼承實例詳解

    Python面向對象類的繼承實例詳解

    這篇文章主要介紹了Python面向對象類的繼承,結合實例形式詳細分析了Python面向對象程序設計中類的繼承原理、定義、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-06-06
  • python re正則匹配網(wǎng)頁中圖片url地址的方法

    python re正則匹配網(wǎng)頁中圖片url地址的方法

    今天小編就為大家分享一篇python re正則匹配網(wǎng)頁中圖片url地址的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實現(xiàn)PPT幻燈片的添加、刪除或隱藏操作

    Python實現(xiàn)PPT幻燈片的添加、刪除或隱藏操作

    PowerPoint文檔是商務、教育、創(chuàng)意等各領域常見的用于展示、教育和傳達信息的格式,在制作PPT演示文稿時,靈活地操作幻燈片是提高演示效果、優(yōu)化內(nèi)容組織的關鍵步驟,本文給大家介紹了Python 操作PPT幻燈片- 添加、刪除、或隱藏幻燈片,需要的朋友可以參考下
    2024-08-08
  • Python實現(xiàn)快速排序的方法詳解

    Python實現(xiàn)快速排序的方法詳解

    這篇文章主要介紹了Python實現(xiàn)快速排序的方法,結合實例形式詳細分析了快速排序的思路、原理及Python具體實現(xiàn)技巧與相關操作注意事項,需要的朋友可以參考下
    2019-10-10
  • python支持多繼承嗎

    python支持多繼承嗎

    在本篇文章里小編給大家整理的是關于python支持多繼承的相關基礎知識點,需要的朋友們跟著學習參考下。
    2020-06-06

最新評論

蒙阴县| 新密市| 邢台市| 河南省| 连云港市| 玉树县| 郴州市| 绥棱县| 绥棱县| 张掖市| 沛县| 怀集县| 沁水县| 手游| 亳州市| 宁南县| 综艺| 巴里| 开原市| 徐州市| 讷河市| 滨海县| 静乐县| 乌兰察布市| 彰化县| 泗阳县| 旬阳县| 巫溪县| 安康市| 天长市| 调兵山市| 满洲里市| 蒙阴县| 中卫市| 长葛市| 廊坊市| 利津县| 澄城县| 和田县| 泉州市| 延安市|