2016-07-06 44 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等等。

只是为了便于理解,我读的文件是这样的

usgaap costofgoodsold 
usgaap returnonasset 

我能在python做到这一点?

+0

您可以使用字典来存储变量名称和值吗? – lwassink

+0

使用另一个字典来包含其他字典,例如all_tax [tax_file],文件名(或只是年)作为关键字,并作为该年的字典值 –

+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

我认为他/她想按文件对数据进行分组,但是您将所有内容都放在一个字典中 –

+0

@λuseryup,谢谢您将其清除。这是我想要解决这个问题的方法,但我会解决在字典方法。只是好奇是否有这样做的方式寿。在其他职位[变量变量](http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python)我只看到它构造与getattr对象的名称属性或使用全局变量()来访问,但是有可能在python中变量变量的想法吗? –

0

为什么不干脆让字典变量字典,其中的关键是一年,和值是另一个字典。所以你可以做

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

这是解决你所描述的问题的标准方法。在这种情况下,您应该也可以使用不同的名称作为变量,因为'dict'是python中的一个类

相关问题