在Python中循环追加多个列表到单个列表
在下面的代码中,row[8]、row[9],一直到row[27]每一行都包含很多数字。我需要把row[8]、row[9]等行中的所有数字分别放到stat_by_symbol这个变量里,作为不同的列表。但是,下面的代码把所有行的数字都放到一个列表里了。
举个例子,如果我调用stat_by_symbol['aaa'][0],那么我应该能得到从row[8]提取出来的数字列表。
我该怎么解决这个问题呢?非常感谢。
补充说明:我附上了一张csv文件的快照。我需要stat_by_symbol['aaa'][0]返回的是Column i下的所有数字。同样,stat_by_symbol的索引为1时,应该返回Column 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])
1 个回答
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)