2016-04-24 289 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