循环以将多个列表附加到Python中的单个列表

时间:2011-12-15 08:38:34

标签: python list loops

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

作为我需要的一个例子,如果我调用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])

1 个答案:

答案 0 :(得分: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)