2016-04-24 118 views
1

兩個列表如何兩個列表中有兩列合併到一個

x = ['a','b','c','d','e'] 
y = ['s','t','u','v','w','x','y','z'] 

如何結合這兩種結果,並轉儲這些到CSV有兩列文件,我已經使用zip(x,y)嘗試,但它刪除某些列表y的最終對象。大多數解決方案都提供了xy中的對象相同的情況,正如您在我的案例中所看到的那樣,情況並非如此。

+0

這是Python的2或3?對於沒有「x」值的行,應該寫入第二列的內容是什麼? –

+0

@MartijnPieters正在使用python 2,我使用zip(x,y)並將它保存在另一個文件中,並將該文件寫入csv,它具有x的所有對象,但只有y的前5個對象。如果i Zaibi

+0

'行)'。雖然 – jDo

回答

5

改爲使用itertools.izip_longest() function,並告訴它如何使用這些缺失的列;一個CSV文件一個空字符串會的工作:

for row in izip_longest(x, y, fillvalue=''): 
    # ... 

注意的是Python 3,i前綴從功能名稱中去掉。

如果你正在寫這些到CSV文件,你可以將整個對象發送到直接csv.writer.writerows()功能:

import csv 
from itertools import izip_longest 

with open(filename, 'wb') as outf: 
    writer = csv.writer(outf) 
    writer.writerows(izip_longest(x, y, fillvalue='')) 
+0

Dude,'len()'支票可能會稍微貴一些,感謝你的努力。 – Zaibi