2016-07-06 5 views
0

私はPythonの新種です ここまでは私のコードです。私が達成したい目標は、別の変数を使って変数名を参照することです。変数をPythonの別の変数で参照しています

tax_files=['2008','2009','2011','2012','2013','2014','2015'] 
file_dir='/' 
for tax_file in tax_files: 
    filename=file_dir + tax_file+'.csv' 
    with open(filename,'r') as f: 
     for line in f: 
      splitted_line = line.split() 
      dict_(tax_file)[splitLine[1]] = splitLine[0] 

最後の行には、dict(tax_file)は異なる繰り返しで異なると仮定します。最初の反復はdict_2008、次にdict_2009などである必要があります。

はただ理解を容易にするために、私が読んファイルは、私はPythonでこれを達成することができます。この

usgaap costofgoodsold 
usgaap returnonasset 

のようなものですか?

+0

辞書を使って変数名と値を保存できますか? – lwassink

+0

別のdictを使用して、たとえばall_tax [tax_file]をファイル名(または年のみ)をキーに使用し、値としてその年のdict –

+0

あなたの質問は不明です!編集したいものを表示するには、ハードコードでコード内に期待している出力を表示します。 – wolframalpha

答えて

1
res = {} 
for tax_file in tax_files: 
    filename=file_dir + tax_file+'.csv' 
    with open(filename,'r') as f: 
     for line in f: 
      splitted_line = line.split() 
      res[ tax_file + '_' +splitLine[1]] = splitLine[0] 

更新

res = {} 
for tax_file in tax_files: 
    temp = {} 
    filename=file_dir + tax_file+'.csv' 
    with open(filename,'r') as f: 
     for line in f: 
      splitted_line = line.split() 
      temp[line[0]] = temp.get(line[0],[]) +[line[1]] 
    res[ tax_file ] = temp 
+0

私は彼がファイルごとにデータをグループ化したいと思っていますが、すべてを単一のdict –

+0

@λuseryupに入れています。それは私がこの問題を解決するために取るべき方法ですが、私は辞書の方法で解決します。ちょうど興味があるのは、これを行う方法です。他のポスト[変数変数](http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python)私はそれがgetattrでオブジェクトの名前属性を構築することがわかりますまたはアクセスするためにglobals()を使用することはできますが、Pythonの変数の変数のアイデアの周りに遊ぶことは可能ですか? –

0

理由だけではなく、dictの変数にキーが一年で辞書を作成し、値がちょうど別の辞書ではありません。あなたができるように

dict[tax_file][splitLine[1]] = splitLine[0] 

これは、説明している問題を解決するための標準的な方法のようなものです。 'dict'はPythonのクラスなので、この場合はおそらく変数に別の名前を使うべきです。

関連する問題