ここに質問があります:文字列内の単語の位置を見つける方法は?
次の入力と出力でwordPositions()という名前の関数を記述します。 入力:s、大文字と小文字の文字とスペースで構成される文字列。 リターン:s内の各別個の単語がキーであり、対応する値が、単語が出現するs内の位置のリストである辞書。単語は、大文字とは無関係に同じものとして扱われなければならない。つまり、「はい」と「はい」は同じ単語です。 正しい出力の例を次に示します。
s = 'One fish two fish red fish blue fish'
wp = wordPositions(s)
print(wp)
{ '2':[2]、 '1':[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 ':2 '' 青:6、 '赤':4 、 'fish':1、 'One':0}
教授のように見えるようにするにはどうすればよいですか?また、私の出力では、文字列で繰り返されていますが、 'fish'という単語がどのように1つの位置しか表示されていないかに注目してください。 Pythonに 'fish'の複数の位置を表示させるにはどうすればよいですか?
あなたの辞書はリストを保持する必要があります。このためには、 'defaultdict'を見て、辞書項目をデフォルトでリストにすることができます。次に、 'enumerate'を使って繰り返します。 indexを(start引数を指定せずに)使用すると、コードを 'On^2'時間の複雑さを与えることは言うまでもなく、同じインデックスを見つけることができます。 –