【发布时间】:2011-12-15 08:38:34
【问题描述】:
在下面的代码中,row[8], row[9], ..., row[27] 每个都包含许多数字。我需要将 row[8]、row[9] 等中的所有数字作为 stat_by_symbol 中的单独列表附加到 stat_by_symbol。但是,下面的代码将所有数字附加到单个列表中的所有行中。
作为我需要的示例,如果我调用 stat_by_symbol['aaa'][0],那么我应该得到从 row[8] 中提取的数字列表。
我该如何解决这个问题?非常感谢。
编辑以进一步澄清。我附上了csv的快照。我需要 stat_by_symbol['aaa'][0] 给我列 i 下的所有数字。同样,索引为 1 的 stat_by_symbol 会给我列 j 下的所有数字。
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])
【问题讨论】:
-
你确定 row 是一个列表列表吗?
-
@johnjdc - 为什么在
with之后一直取消缩进块? -
@Vaughn Cato 每一行都是一个列表,而 stat_by_symbol 应该收集所有这些列表。
-
@eumiro 我间隔了四次,然后粘贴了代码。不知道为什么。不过我修好了。
-
@johnjdc - 你说 row[8] 包含许多数字,这意味着 row[8] 是一个列表,这意味着 row 是一个列表列表。我认为您正在以两种不同的方式考虑变量“行”。