取得两个列表列表并返回一个新的列表列表,该列表是匹配索引位置的值的总和?

时间:2018-11-01 19:07:35

标签: python list-comprehension

我正在尝试创建一个函数,该函数接受两个列表列表并返回其值的总和。

假设我有2个列表:

list1 = [[7,8], []]
list2 = [[3,4,2],[6,9]]

预期输出:

[[10,12,2],[6,9]]

或另外2个列表:

list1 = [[], []]
list2 = [[3,4,2],[6,9]]

预期输出:

[[3,4,2],[6,9]] 

我认为使用列表理解将是实现此目的的最有效方法,但是我对列表理解的了解并不如我所愿。

我看过Stack Overflow,对于这个问题,我能找到的最接近答案只有2个不包含另一个列表的列表。

1 个答案:

答案 0 :(得分:3)

您可以对zipitertools.zip_longest使用嵌套列表推导:

import itertools
list1 = [[7,8], []]
list2 = [[3,4,2],[6,9]]

>>> [[x+y for x,y in itertools.zip_longest(i1,i2,fillvalue=0)] for i1,i2 in zip(list1,list2)]
[[10, 12, 2], [6, 9]]

list1 = [[], []]
list2 = [[3,4,2],[6,9]]

>>>[[x+y for x,y in itertools.zip_longest(i1,i2,fillvalue=0)] for i1,i2 in zip(list1,list2)]
[[3, 4, 2], [6, 9]]