2016-03-21 10 views
1

私はこの形式のテキストファイルを持っています。 キーと値をテキストから読み込む

the 0.418 0.24968 -0.41242 0.1217 0.34527 -0.044457 -0.49688 -0.17862 -0.00066023 -0.6566 0.27843 -0.14767 -0.55677 0.14658 -0.0095095 0.011658 
and 0.26818 0.14346 -0.27877 0.016257 0.11384 0.69923 -0.51332 -0.47368 -0.33075 -0.13834 0.2702 0.30938 -0.45012 -0.4127 -0.09932 0.038085 

は、私は私が開始するかどうかはわからない

{'the': [0.418, 0.24968,..], 'and': [0.26818 0.14346,..]} 

を有するようにPythonの辞書の変数にそれを読みたいですか?

答えて

1

はここで機能するソリューションです。だから私は彼のソリューションを大きなファイル(それはあまりにも多くのメモリが不必要にかかる)に使用することをお勧めしません。

1

ファイルを1行ずつ反復処理できます。次に、空白のsplitをキーとしてインデックス[0]を使用し、リスト内包を使用して残りの値をfloatのリストに変換します。リストではなくイテレータを返す@CoryKramerによって提案されたソリューションはreadlinesを使用していることを

my_dict = {} 
with open('your_file_name') as f: 
    for line in f: 
     elements = line.split() 
     my_dict[elements[0]] = [float(e) for e in elements[1:]] 

注:

with open(text_file) as f: 
    d = dict() 
    for line in f: 
     data = line.split() 
     d[data[0]] = [float(i) for i in data[1:]] 
    print(d) 

出力

{'and': [0.26818, 0.14346, -0.27877, 0.016257, 0.11384, 0.69923, -0.51332, -0.47368, -0.33075, -0.13834, 0.2702, 0.30938, -0.45012, -0.4127, -0.09932, 0.038085], 
'the': [0.418, 0.24968, -0.41242, 0.1217, 0.34527, -0.044457, -0.49688, -0.17862, -0.00066023, -0.6566, 0.27843, -0.14767, -0.55677, 0.14658, -0.0095095, 0.011658]} 
0

これはスタートですか?

import json 

variable_one = "the 0.418 0.24968 -0.41242 0.1217 0.34527 -0.044457 -0.49688 -0.17862 -0.00066023 -0.6566 0.27843 -0.14767 -0.55677 0.14658 -0.0095095 0.011658" 

variable_one = variable_one.split() 
json_variable_one = [] 
json_variable_one = variable_one[0], variable_one[1:] 

print(json.dumps(json_variable_one)) 

出力:

[ ""、[ "0.418"、 "0.24968"、 "-0.41242"、 "0.1217"、 "0.34527"、 "-0.044457"、 "-0.49688"、 「-0.17862」、「-0.00066023」、「-0.6566」、「0.27843」、「-0.14767」、「-0.55677」、「0.14658」、「-0.0095095」、「0.011658」〕

関連する問題