我有:
List1 = [100, 200, 300]
List2 = [[34,35,36],[0,1,2,3],[0,1,2]]
如何将List1
的每个元素与List2
中每个列表中的每个元素相加?
我想:
List3 = [[134,135,136],[200,201,202,203],[300,301,302]]
我尝试过按照以下方式做的事情:
for i in List2:
[sum(x) for x in zip(List1, i)]
但我没有得到正确的答案。
提前致谢。
答案 0 :(得分:2)
如果你想使用列表理解,你可以写:
>>> [[x + a for a in lst] for x, lst in zip(List1, List2)]
[[134, 135, 136], [200, 201, 202, 203], [300, 301, 302]]
(这假设两个列表的长度相同;如果不是,您可能希望使用itertools库中的zip_longest
来填充较短的列表。)
答案 1 :(得分:1)
我可能会建议稍微不同的实现:
List3 = map(lambda x, y: [z + x for z in y], List1, List2)