2016-10-25 5 views
0

文字列がファイルに書き込まれる関数のリストを持つモジュールを作成する必要があります。私が立ち往生している部分は、単語が入力文字列に現れる回数を取って辞書に追加する必要がある場所です。辞書のキーが単語になり、値は単語が文字列に現れる時間の量になります。単語がリストに現れた回数を合計し、値と単語を辞書に入れますか?

def word_freq_dict(): # function to count the amount of times a word is in the input string 
    file = open("data_file.txt", 'r') 
    readFile = file.read() #reads file 
    words = readFile.split() #splits string into words, puts each word as an element in a list 

他の機能が動作していることを確認しました。私がこれまでにしてきたことは、言葉を取ってリストに入れていることです。私は各単語がリストに現れる時間を合計し、その単語をキーとし、それが値であると思われる時間の量で辞書に追加したいと思います。この関数は何も返しません。これを行うには非常に簡単な方法があります

+0

ディクショナリの**カウンタ**サブタイプのPythonドキュメントを参照してください。 – Prune

+0

あなたが今見せたコードはあなたの単語のリストを取得するだけです。何を次に試してあなたのカウントを取得しようとしましたか?たぶんあなたは近くにあり、ヒントが必要なだけかもしれません。あなたの試みを見せてもらえますか? – idjaw

答えて

0

:dict.get()関数にデフォルトとして0を使用することにより

word_count = {} 
for word in words: 
    word_count[word] = word_count.get(word,0) + 1 

は言葉が最初に表示されたとき、それは0を返します。単語がすでに辞書に入っている場合は、そのキーの現在の値を返します。次に、各繰り返しに1を加えます。

+0

まさに私が探していたもの、ありがとう!私はforループを使用しなければならないことを知っていましたが、実装する方法はわかりませんでした。 –

関連する問題