文字列のリスト (約 100) があり、そのうちの 1 つが別の文字列で最初に出現した場所と、それが発生したインデックスを見つけたいと考えています。
インデックスを保持し、あとがきはそのインデックスから別の単語リストを使用して再度検索し、文字列の末尾に到達するまで最初のリストに戻ります。
私の現在のコード(最初に出現したものを検索する)は次のようになります。
def findFirstOccurence(wordList, bigString, startIndex):
substrIndex = sys.maxint
for word in wordList:
tempIndex = bigString.find(word, startIndex)
if tempIndex < substrIndex and tempIndex != -1:
substrIndex = tempIndex
return substrIndex
このコードは仕事をしますが、多くの時間がかかります (同じ単語リストに対して数回実行しますが、100 個の大きな文字列 (それぞれ約 10K-20K 単語) で実行します)。
私はもっと良い方法があると確信しています(そしてそうするためのよりpythonicな方法)。