這裏是問題:如何找到字符串中的單詞的位置?
用下面的輸入和輸出編寫一個名爲wordPositions()的函數。 輸入:s,由大寫和小寫字母和空格組成的字符串。 Return:一個字典,其中s中的每個不同單詞都是一個關鍵字,相應的值是該單詞出現位置s的列表。無論大寫字母是什麼,字都應該被視爲相同。也就是說,「是」和「是」是同一個詞。 以下是正確輸出的示例。
s = 'One fish two fish red fish blue fish'
wp = wordPositions(s)
print(wp)
{ '2':[2], '一':[0], '紅':[4], '魚':[1,3,5,7],「藍色':[6]}
現在,這裏是我的代碼:
def wordPositions(s):
aDict = {}
words = s.split(' ')
for item in words:
position = words.index(item)
aDict[item] = position
print(aDict)
print(wordPositions('One fish two fish red fish blue fish'))
的問題是我的輸出:
{' 兩化「:2, '藍':6, '紅':4 ,'fish':1,'One':0}
如何讓它看起來像教授的?另外,請注意,在我的輸出中,'fish'這個單詞只顯示了它的一個位置,儘管它在字符串中重複了一遍。我如何讓Python顯示'魚'的多個位置?
你的字典需要保存列表。對於這一個,你可能想看看'defaultdict'來讓你的字典條目默認爲列表。接下來的事情是迭代使用'枚舉'。如果你使用索引(沒有'start'參數),它會繼續找到相同的索引,更不用說它會給你的代碼'On^2'的時間複雜度。考慮'爲我,在枚舉字('一條魚兩條魚紅色魚藍色fish'.split()):打印(我,單詞)' –