2013-07-10 42 views
0

我有兩個不同長度的2D列表,我期待將兩個列表合併成一個2D列表,當父列表中的一個列表變短時我會就像循環放入空間一樣。結合兩個不等長的2D列表來創建一個新列表

例如:

list1 = [['abc',123],['def',456],['ghi',789]] 
list2 = [['abc',123],['def',456]] 

期望的結果:

list3 = [['abc',123,'abc',123],['def',456,'def,456],['ghi',789,'','']] 

我一直在試圖與循環,由此所統計遞歸,並使用這些作爲列表索引(下同),但這種限制最短名單的做法,我最終失去了數據。

list3 = list1[count]+list2[count] 

回答

1

使用itertools.izip_longest

>>> from itertools import izip_longest 
>>> [x+y for x,y in izip_longest(list1,list2, fillvalue = ['',''])] 
[['abc', 123, 'abc', 123], ['def', 456, 'def', 456], ['ghi', 789, '', '']] 
+1

完美!謝謝你,還有很多東西要學習python模塊,當時間用完時,我會接受你的答案。 – MChandler

相關問題