2014-03-03 95 views
-2

你能解決這個問題嗎?我試圖用string.find()來查找在給定範圍內的所有情況下(i到j)函數查找()在所有情況下

def multi_find(seq, subseq, i, j): 
list = [] 
while i != -1 and i < j: 
    list.append(seq.find(subseq,i,j)) 
    i = seq.find(subseq,i,j) + 1 
return list 


print multi_find(seq, subseq, i, j) 
+0

代碼有什麼問題? – Nabla

+0

它不起作用。功能錯誤 – user252017

+3

什麼是錯誤信息?如果您將問題發佈在網站上,那麼對每個人來說都會更容易(以及完整的追溯)。 – Nabla

回答

0
def multi_find(seq, subseq, i, j): 
    lst = [] 
    loc = seq.find(subseq, i, j) # location of subseq 

    while loc != -1: 
     lst.append(loc) 
     i = loc + 1 
     loc = seq.find(subseq, i, j) 
    return lst 

我認爲這是更清晰的使用ij的範圍,其中以搜索seq並使用另一個變量loc來保留搜索結果。

+0

我看到非常感謝你 – user252017

+1

我認爲你不用擔心我< j, i > = j將導致swq.find返回-1 – realli

+0

@realli是的,你是正確的感謝。 – Jae

0

這樣的事情可能更接近你想要做的事情。

import sys 

def multi_find(seq, subseq, i, j): 
    list = [] 
    for x in xrange(j - i): 
     temp = seq.find(subseq, x + i, j) 
     if(temp != -1): 
      list.append(temp) 
      x += sys.getsizeof(subseq) 
     else: 
      x += 1 
    return list 

它運行廣告返回的是子字符串的令牌數量,但我不太清楚你想如何增加你的i。

相關問題