我有两个列表,每个列表都有相同的大小,并且有兴趣将这两个列表结合起来并写入一个文件中。在Python中结合2个列表
alist=[1,2,3,5]
blist=[2,3,4,5]
--the结果列表应该是这样 [(1,2),(2,3),(3,4),(5,5)]
之后我想,将其写入文件。我怎样才能做到这一点?
我有两个列表,每个列表都有相同的大小,并且有兴趣将这两个列表结合起来并写入一个文件中。在Python中结合2个列表
alist=[1,2,3,5]
blist=[2,3,4,5]
--the结果列表应该是这样 [(1,2),(2,3),(3,4),(5,5)]
之后我想,将其写入文件。我怎样才能做到这一点?
# combine the lists
zipped = zip(alist, blist)
# write to a file (in append mode)
file = open("filename", 'a')
for item in zipped:
file.write("%d, %d\n" % item)
file.close()
在文件中产生的输出将是:
1,2
2,3
3,4
5,5
为了完整起见,我将添加到该Ben's solutionitertools.izip
优选特别是对于较大的列表,如果结果被迭代使用,作为最终结果是不是一个实际的名单,但发电机:
from itertools import izip
zipped = izip(alist, blist)
with open("output.txt", "wt") as f:
for item in zipped:
f.write("{0},{1}\n".format(*item))
为izip
的文档可以发现here。
好点;如果你使用2.6或更早版本,这是值得的。在Python 3中,'zip()'产生一个迭代器而不是一个列表 – 2009-11-04 11:11:31
@Ben:是的,你是对的!我没有提到Python 3,但值得了解。 – RedGlyph 2009-11-04 11:33:24
在第一条语句结束时删除逗号。目前'alist'是一个元组,其值为'([1,2,3,5],)'。 – Stephan202 2009-11-04 10:49:30
Duplicate:http://stackoverflow.com/questions/803526/merge-two-lists-of-lists-python。闻起来像功课。当然是一个FAQ。 – 2009-11-04 11:26:51