在python中组合2个列表

Cha*_*nya 3 python list

我有两个相同大小的列表,我有兴趣组合这两个列表并将其写入文件.

alist=[1,2,3,5] 
blist=[2,3,4,5] 
Run Code Online (Sandbox Code Playgroud)

- 结果列表应该像[(1,2),(2,3),(3,4),(5,5)]

之后,我希望将其写入文件.我怎么能做到这一点?

Ben*_*mes 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()
Run Code Online (Sandbox Code Playgroud)

文件中的结果输出将是:

 1,2
 2,3
 3,4
 5,5
Run Code Online (Sandbox Code Playgroud)


Red*_*yph 6

为了完整起见,我将添加Ben的解决方案,itertools.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))
Run Code Online (Sandbox Code Playgroud)

izip可以在此处找到文档.

  • 好点子; 如果你使用2.6或更早版本,这是值得做的.在Python 3中,`zip()`生成迭代器而不是列表 (2认同)