我有兩個列表,每個列表都有相同的大小,並且有興趣將這兩個列表結合起來並寫入一個文件中。在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