2009-11-04 55 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