2009-11-04 117 views
3

我有两个列表,每个列表都有相同的大小,并且有兴趣将这两个列表结合起来并写入一个文件中。在Python中结合2个列表

alist=[1,2,3,5] 
blist=[2,3,4,5] 

--the结果列表应该是这样 [(1,2),(2,3),(3,4),(5,5)]

之后我想,将其写入文件。我怎样才能做到这一点?

+1

在第一条语句结束时删除逗号。目前'alist'是一个元组,其值为'([1,2,3,5],)'。 – Stephan202 2009-11-04 10:49:30

+1

Duplicate:http://stackoverflow.com/questions/803526/merge-two-lists-of-lists-python。闻起来像功课。当然是一个FAQ。 – 2009-11-04 11:26:51

回答

13
# 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 
6

为了完整起见,我将添加到该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

好点;如果你使用2.6或更早版本,这是值得的。在Python 3中,'zip()'产生一个迭代器而不是一个列表 – 2009-11-04 11:11:31

+0

@Ben:是的,你是对的!我没有提到Python 3,但值得了解。 – RedGlyph 2009-11-04 11:33:24