我正在寫一個函數來檢查字符串中'a'和'b'之間的距離是否爲3,使用以下函數。對於輸入字符串「Laura sobs」,'s'的值被存儲爲1(最早出現的'a')而不是4(最後一次出現'a'),並且我得到錯誤的輸出。我該如何解決?Python:存儲最早發生的字符索引,而不是最後一個
def ABCheck(str):
for i in str:
if i == 'a':
s = str.index(i)
elif i == 'b':
t = str.index(i)
# print (b)
return (abs(s-t)==4)
感謝@RemcoGerlich,它在我使用'枚舉'但'enumerate(s [:3])'不起作用時起作用。你能解釋這部分嗎? 「你不需要重複最後一部分」是什麼意思?是的,我不使用'str'作爲變量名,它來自網站:) – Sri
我的意思是'-3'。因爲如果你在最後三個字符中找到一個'a',那麼沒有足夠的空間讓'b'有三個字符,所以不需要檢查它們(否則你必須確保你不要在字符串結束之後的索引)。 – RemcoGerlich
非常感謝!我學到了枚舉函數是多麼有用:)只是一個小修正,它應該是'4'而不是'3'並且添加s [idx-4] =='b'與'或' – Sri