我有一个列表列表,需要在csv列中编写每个元素。 使用下面的代码,它输出我想要的。
for row in izip_longest(*averages_, fillvalue = ['']):
writer.writerow(row[0] + row[1])
行[0]的样本行:
['0.000000', '0.000586', '0.005819', '0.011434', '0.052012', 0.000586118993]
问题:
如何将代码(row[0] + row[1])
替换为包含变量的代码,以便在主列表中自动添加任意数量的子列表(row[i] + row[i+1] + row[i+2]...)
?
答案 0 :(得分:1)
如果row是列表列表,请将(row[0] + row[1])
替换为
list(itertools.chain.from_iterable(row))
或
[item for sublist in row for item in sublist]
中挑选了两个
答案 1 :(得分:1)
如果我理解你想要的东西,那么下面应该做的就是:
writer.writerow(reduce(lambda x, y: x+y, row))
这项工作适用于行的所有元素。如果你想对第一个 count 元素求和,你可以这样尝试:
writer.writerow(reduce(lambda x, y: x+y, row[:count - 1]))