2011-12-15 14 views
0

次のコードは、各シンボルをキーとして使用して数字のリストを呼び出すことができるように、長いリストのリストをcsvからstat_by_symbol [symbol]にダンプすることを目的としています。何らかの理由で、コードは最初のシンボルに対してのみ機能するようです。誰かが意図したとおりにコードを修正できるように助けてくれますか?どうもありがとう。Pythonリストの問題

with open('zzdata.csv', 'rb') as f: 
    reader = csv.reader(f) 
    reader.next() 
    for symbol in symbols:#symbols in a list 
     stat = [] 
     for row in reader: 
      if symbol in row: 
       stat.append(row[8])#stat becomes long list of numbers 
     stat_by_symbol[symbol] = [stat] 

答えて

3

問題は、readerを1回だけ繰り返すことができます(したがって、最初のシンボルのみが一致します)。

これを試してみてください:

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: 
       stat_by_symbol.setdefault(symbol, []).append(row[8]) 
+0

感謝を!行[8]のすべての数字が0に、行[9]のすべての数字が1になるように行[8]から行[27]まで繰り返す必要があります。私は追加しようとしました:範囲(8、28)のために:... append(row [i])、しかしこの手続きは、必要な数のリストを分けるわけではありません。これに関する助言? – johnjdc

+0

@ johnjdc - あなたの質問を更新し、必要なもののよりよい例を追加してください。 – eumiro

+0

新しい質問が投稿されました:http://stackoverflow.com/questions/8517246/loop-to-append-multiple-lists-to-a-single -list-in-python – johnjdc