0
所以我幾個月來一直在學習Python。我遇到了一個練習,希望您能夠計算一個字符串中出現子字符串的次數。我搜查了一下,但找不到我正在尋找的確切答案。這是我寫的代碼,這是功能性的。但是,由於例外情況,這確實需要一秒鐘。我選擇使用string.index,因爲string.find中的-1值在某些詞中會混淆起點。什麼是更有效的方式,而不需要導入其他模塊等。在更基本的Python中,比如我寫的代碼。在Python中計數子字符串 - 更有效的方法?
word = "banana"
sub = "ba"
start = 0
ix = 0
count = 0
end = None
if end is None:
end = len(word)
while start < end:
if sub in word:
try:
ix = word.index(sub, start, end)
except:
break
ix += 1
start = ix + 1
count += 1
print(count)
謝謝!
/捂臉我的文檔中讀出這一點,但也許我得到它似乎多麼簡單混淆。爲什麼我爲已經存在的函數創建函數而遭受折磨? /嘆息 –
@ChrisAvina然而,請注意,這將導致''banana'.count('ana')== 1'(非重疊),而你已經實現將產生'2' – schwobaseggl
@schwobaseggl謝謝指出。我會記下來。 –