0

スコアと標準偏差が与えられた各単語の単語リストを含むファイルから辞書を実行できるPythonプログラムを実行しようとしています。私のプログラムは次のようになります。

theFile = open('word-happiness.csv', 'r')

theFile.close()



def make_happiness_table(filename):
   ''' make_happiness_table: string -> dict
       creates a dictionary of happiness scores from the given file '''

return {}


make_happiness_table("word-happiness.csv")

table = make_happiness_table("word-happiness.csv")
(score, stddev) = table['hunger']
print("the score for 'hunger' is %f" % score)

ファイルに「hunger」という単語がありますが、このプログラムを実行して「hunger」を取得し、指定されたスコアと標準偏差を返すと、次のようになります。

(score, stddev) = table['hunger']
KeyError: 'hunger'

辞書に「空腹」があるのに、どうしてキーエラーが発生するのですか?

4

1 に答える 1

1

"hunger"辞書にありません(それがあなたにKeyError伝えていることです)。問題はおそらくあなたのmake_happiness_table機能です。完全なコードを投稿したかどうかはわかりませんが、それは問題ではありません。関数の最後に、関数内で他に何が起こったかに関係なく、空の辞書( ) を返します。{}

おそらく、その関数内でファイルを開き、辞書を作成して返したいと思うでしょう。たとえば、csv ファイルが (カンマで区切られた) 2 列だけの場合、次のようにできます。

def make_happiness_table(filename):
    with open(filename) as f:
         d = dict( line.split(',') for line in f )
         #Alternative if you find it more easy to understand
         #d = {}
         #for line in f:
         #    key,value = line.split(',')
         #    d[key] = value
    return d
于 2012-10-18T14:21:53.323 に答える