如何将两个相互匹配的列表输出到一个txt文件中



我这里有两个列表:

a=["rate","date","population"]
b=[4,2/3/2021,1523]

,我需要将这两个列表输出到像这样的txt文件中:

rate    date    population
4    2/3/2021    1523

两个单词之间的空格是制表符,我尝试使用像

这样的代码
with open("data.txt","w") as outfile:
zipped = zip(a, b)
set1=[]
for i, r in zipped:
set1.append(i)
set1.append(r)
outfile.write(str(set1))

,但它不起作用,我不知道如何把制表符选择到它。需要帮助!谢谢你!

您可以使用csv模块的DictWriter来编写以制表符分隔的文件。为此,可以将分隔符指定为制表符。

import csv
filename = "output.txt"
a = ["rate","date","population"]
b = [4,2/3/2021,1523]
values = dict(zip(a,b))
with open(filename, 'wb') as f:
writer = csv.DictWriter(f, delimiter='t', fieldnames=a)
writer.writeheader()
writer.writerows(values)

您可以尝试使用t:

a=["rate","date","population"]
b=["4","2/3/2021","1523"]
with open("data.txt","w") as outfile:
outfile.write('t'.join(a)+'n')
outfile.write('t'.join(b))

您可以使用下面的代码片段实现您的结果

a=["rate","date","population"]
b=['4','2/3/2021','1523']
result = 't'.join(a) + 'n' + 't'.join(b)
with open('result.txt', 'w') as f:
f.writelines(result)
a=["rate","date","population"]
b=[4,"2/3/2021",1523]
with open("data.txt","w") as outfile:
for x in a:
outfile.write(f'{x}t')
outfile.write('n')
for x in b:
outfile.write(f'{x}t')
outfile.write('n')    

我使用csv模块:

import csv
with open("data.txt", "w") as outfile:
writer = csv.writer(outfile, delimiter='t')
writer.writerow(a)
writer.writerow(b)

edit:如果你想修复你的代码而不使用csv模块:

with open("data.txt", "w") as outfile:
outfile.write('t'.join(a) + 'n')
outfile.write('t'.join(b) + 'n')

't'.join(a)str的一个有用函数,它将joina中的每个值与t分开:

>>> 't'.join(["if", "this", "isn't", "nice", "what", "is?"]
"iftthistisn'ttnicetwhattis?"
>>> print(_)
if      this    isn't   nice    what    is?