组合两个长度不等的2D列表以创建一个新列表

时间:2013-07-10 13:52:33

标签: python list multidimensional-array nested-lists

我有两个长度不等的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 个答案:

答案 0 :(得分: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, '', '']]