Python:迭代两个列表,并将它们写入同一行上的outfile

Python:迭代两个列表,并将它们写入同一行上的outfile,python,list,zip,Python,List,Zip,我想同时遍历两个列表,并将两个列表中的每一项都写下来,标签在同一行上分开 word = ['run', 'windless', 'marvelous'] pron = ['rVn', 'wIndl@s', 'mArv@l@s'] 期望输出: run rVn windless wIndl@s marvelous mArv@l@s 我尝试使用zip,但它不允许我写入文件: for w, p in zip(word, pron): outfile.write(w, p) TypeEr

我想同时遍历两个列表,并将两个列表中的每一项都写下来,标签在同一行上分开

word = ['run', 'windless', 'marvelous']
pron = ['rVn', 'wIndl@s', 'mArv@l@s']
期望输出:

run  rVn
windless  wIndl@s
marvelous  mArv@l@s
我尝试使用
zip
,但它不允许我写入文件:

for w, p in zip(word, pron):
   outfile.write(w, p)

TypeError: function takes exactly 1 argument (2 given)

write只接受一个参数作为参数。要在同一行中写入两个变量,请更改:

outfile.write(w, p)
这样,它就是一个带制表符和换行符的字符串:

outfile.write("{}\t{}\n".format(w,p))

我认为你走的路是对的。只需给write()函数一行代码即可

像这样:

for w, p in zip(word, pron):
    outfile.write("%s, %s" % (w, p))

如果您想让自己的生活更轻松,可以使用打印语句/功能

:

(或Python 2使用顶部的从_u未来_;导入打印u函数):


这样可以避免手动添加“\n”或将所有内容转换为单个字符串。

这将提供以下输出:
'run'、'windless'、'marvelous'、'rVn'、'wIndl@s', 'mArv@l@s'
@user1899415我认为您显示的输出不可能使用此答案中的代码。。。逗号太多,输出绝对不应该有任何单引号。你确定你正在准确地使用这个代码吗?嗯,我得到了错误:
ValueError:zero-length字段名的格式是
@user1899415你必须在python2.6上。尝试
outfile.write(“{0}\t{1}\n”.format(w,p))
问题与
zip
无关。文件对象的
write
方法采用单个字符串。您正在尝试传递两条字符串。你有没有考虑过使用
打印
?打印效果很好,但我真的很想保存到一个文件中——肯定有办法吗?请查看下面我的答案。
print >>outfile, w, p
print(w, p, file=outfile)