簡體   English   中英

如何在python中查找字符串中所有出現的子字符串

[英]How to find all occurences of substring in string, in python

我需要幫助來說明我在堆棧溢出中找到的此解決方案如何工作。 為什么如果k = -1,您是否需要返回頭寸。 如果我將其更改為返回其他任何內容,則它將不起作用。 謝謝。

def findSubstring(sequence, substring):
    positions = []
    k = 0
    while k < len(sequence):
        k = sequence.find(substring, k)
    if k == -1:
        return positions
    else:
        positions.append(k)
        k += 1 #change to k += len(sub) to not search overlapping results
print(positions)

str.find()返回第一次出現的子字符串的索引(如果找到)。 如果找不到,則返回-1。

這是在findSubstring函數中發生的findSubstring

  • 首先,創建一個空列表,以便以后添加子字符串的出現索引。

  • while k < len(sequence) :我們要查找子字符串,直到到達序列的最后一個索引。

  • k = sequence.find(substring, k) :我們在索引k之后設置子字符串的第一個匹配項的索引(對於第一次迭代,它應該是序列的開始,這就是在while之前設置k=0的原因聲明。)

  • 現在,如果子字符串不在序列k=-1 ,則子字符串出現的索引不存在。

  • if k == -1: return(positions) :如果未找到子字符串,則k=-1並返回空positions列表,否則將索引k附加到positions ,並且k +=1確保在下一次迭代中,我們在剛找到索引tha之后尋找子字符串。

  • 我們迭代k直到我們到達序列的末尾( while k len(sequence)

  • print(positions) :該函數返回索引列表,最后我們將其打印出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM