![](/img/trans.png)
[英]How to find all occurences of a substring in a numpy string array
[英]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.