2011-12-15 5 views
0

次のコードでは、行[8]、行[9]、...、行[27]には多数の数字が含まれています。 stat_by_symbol内の別のリストとしてstat_by_symbolに追加するには、row [8]、row [9]などのすべての数値が必要です。ただし、以下のコードは、すべての行を単一のリスト内のすべての行に追加します。Pythonの単一のリストに複数のリストを追加するループ

stat_by_symbol ['aaa'] [0]を呼び出すと、私は必要なものの例として、行[8]から引き出された数字のリストを取得する必要があります。

どうすればこの問題を解決できますか?どうもありがとう。さらなる明確化のためにEDIT。

EDIT。私はcsvのスナップショットを添付しました。列iの下にあるすべての数字を私に渡すにはstat_by_symbol ['aaa'] [0]が必要です。同様に、インデックス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

あなたは行はリストのリストであることを確認していますか? –

+0

@ johnjdc - なぜ 'with'の後にブロックを挟まないようにしますか? – eumiro

+0

@Vaughn Cato各行はリストであり、stat_by_symbolはそれらのリストのすべてを収集することになっています。 – johnjdc

答えて

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) 
+0

あなたの解決策に構文エラーがあると思います。 – johnjdc

+0

@ johnjdc - ありますか?あなたはそれらを指摘できますか? – eumiro

+0

"stat_by_symbol = dict((シンボル、シンボルのシンボルの場合はシンボル、[[]はxrange(8,28)))"と書かれていますが、トップラインのハイライト。 – johnjdc

関連する問題