2013-07-10 1 views
0

У меня есть два двумерных списка неравной длины, и я собираюсь объединить их в один 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