2011-12-15 152 views
0

在下面的代码中,行[8],行[9],...,行[27]都包含许多数字。我需要行[8],行[9]等中的所有数字作为单独的列表附加到stat_by_symbol中的stat_by_symbol中。但是,下面的代码在单个列表中的所有行之后附加了所有数字。将多个列表追加到Python中的单个列表中

至于什么,我需要一个例子,如果我叫stat_by_symbol [“AAA”] [0],那么我应该得到的号码列表从行拉[8]。

我该如何解决这个问题?非常感谢。

编辑进一步澄清。我附上了csv的快照。我需要stat_by_symbol ['aaa'] [0]给我列i下的所有数字。同样,索引为1的stat_by_symbol会给我列j下的所有数字。

enter image description here

stat_by_symbol = {} 
with open('zzdata.csv', 'rb') as f: 
    reader = csv.reader(f) 
    reader.next() 
    for row in reader: 
     for symbol in symbols:#symbols in a list 
      if symbol in row: 
       for i in range(8, 28): 
        stat_by_symbol.setdefault(symbol, []).append(row[i]) 
+0

你肯定行列出的名单? – 2011-12-15 08:47:45

+0

@johnjdc - 为什么在'with'之后保留unindenting块? – eumiro 2011-12-15 08:51:18

回答

0
stat_by_symbol = dict((symbol, [[] for i in xrange(8,28)]) for symbol in symbols) 
with open('zzdata.csv', 'rb') as f: 
    reader = csv.reader(f) 
    reader.next() 
    for row in reader: 
     for symbol, symbol_list in stat_by_symbol.iteritems(): 
      if symbol in row: 
       for symbol_list2, cell in zip(symbol_list, row[8:28]): 
        symbol_list2.append(cell) 
相关问题