电脑mac 软件vscode
python用for循环,想把两个列表写进csv当中,但只写进了一行数据,请问怎么改才能全部写入
import os,csv
w = [0,1,2,3,4,5]
l = [9,8,7,6,]
for a in w :
o = a
for b in l :
p = b
filepath = '/Users/hope/Desktop/pachong.csv'
with open(filepath,'w') as f :
head = ['链接','文章']
writer = csv.writer(f)
writer.writerow(head)
for line in range(10) :
row = []
row.append(str(o)[line])
row.append(str(p)[line])
writer.writerow(row)
运行结果是只写进了5和6,其他没有写进去
查找了他人写入的方法,比照替换
for a in w :
o = a
for b in l :
p = b
为下面的方法
o = [a for a in w]
print(o)
p = [b for b in l]
print(p)
确实可以写入
希望可以回答下个问题:
原来的方法for循环错在了哪里,为什么数据没有全部写入csv?请写出正确的写法。 万分感谢!
for a in w : o = a
o的值不断被覆盖,所以只有一个值
你这w和l两个列表也不等长啊,在你的代码上做了以下修改:
import csv
w = [0,1,2,3,4,5]
l = [9,8,7,6,]
while len(l)<len(w):
l.append('')
filepath = '/Users/hope/Desktop/pachong.csv'
with open(filepath,'w') as f :
head = ['链接','文章']
writer = csv.writer(f)
writer.writerow(head)
for line in range(len(w)) :
o = w[line]
p = l[line]
row = []
row.append(str(o))
row.append(str(p))
writer.writerow(row)