我想我有一個無限循環?我創建了一個搜索詞作爲鍵和一個索引,其中這些鍵在my_string中找到。我想創建一個帶my_string中所有匹配項列表的search_dict列爲每個項作爲搜索項的索引。查找字符串中所有匹配的索引,將搜索詞和索引附加到字典中。
我的search_dict沒有被填充,只有一個項目有數百萬個項目。
my_string='Shall I compare thee to a summer\'s day?'
#string_dict has only a single index as a value where its key was found in my_string
string_dict={'a': 36, ' ': 34, 'e': 30, '': 39, 'h': 17, 'm': 29, 'l': 4, 'o': 22, 'e ': 19, 's': 33, 'r': 31, 't': 21, ' t': 20, 'e t': 19}
#I'd like search_dict to have all indices for key matches in my_string
search_dict=dict()
for key in string_dict:
search_dict[key]=list()
for item in search_dict:
start=0
end=len(my_string)
found=my_string.find(item,start,end)
while start<end:
if found>=0:
search_dict[key].append(found)
start=found+len(item)
found=my_string.find(item,start,end)
else:
break
print search_dict
我也試過下面的更改。仍然不確定爲什麼如果my_string.find出現-1(未找到),循環沒有爲下一個搜索關鍵迭代打破。
else:
break
#with
if found<0:
break
尋找代碼審查? –
我正在這樣做,審查可能會有所幫助。我不明白爲什麼它會永遠循環。 – 12345678910111213
是的,你有一個無限循環。看看第二個'while'語句中的條件。 – senderle