0

長さが等しくない 2 つの 2D リストがあり、2 つを 1 つの 2D リストに結合しようとしています。親リストの 1 つが足りない場合は、ループにスペースを入れたいと思います。

例えば:

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]
4

1 に答える 1

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, '', '']]
于 2013-07-10T13:54:15.547 に答える