我正在尝试按如下方式编写csv:data [0] [0]应该在第1行A列,data [0] [1]应该在第1行B列,data [1] [0 ]应该在第2行A列,数据[1] [1]应该在第2行B列,依此类推。
如果我使用类似下面代码的低效内容,我可以按预期写入csv。
for i in range(0, len(data)-lg):
writer.writerow([data[i][0], data[i][1], data[i][2],...])
我真的需要类似下面的代码。但是,此代码会在A列中写入所有内容。如何修改它以实现我的目标?感谢。
for i in range(0, len(data)-lg):
for j in range(0, lg+6):
writer.writerow([data[i][j]])
答案 0 :(得分:3)
我认为执行此操作的惯用方法是这样的(不完全理解您的lg
变量):
num_cols = lg + 6
for row in data:
writer.writerow(row[:num_cols])
如果你没有对循环中的行进行任何处理,你可以更简洁地做到这一点:
writer.writerows(data)
修改1
根据解释lg
变量
答案 1 :(得分:2)
为什么不呢?
for row in data:
writer.writerow(row)
答案 2 :(得分:0)
writerow()接受一行(字符串或数字序列)作为输入。您的第二个代码只将一个元素传递给writerow(),因此该元素被写入单独的行(即A列中的每个元素)。在您的第一个示例中,您通过将整个数据行集合传递给writerow()来做正确的事情,以便它可以工作。正如Dan D.建议采用更多的pythonic方式
for x in data:
writer.writerow(x)