首页 > 解决方案 > 有没有办法组合这样的列表?

问题描述

假设 a 和 b 是列表。

a = [[1], [2]]   
b = [[5, 6, 7], [3, 4, 5]]  

我想得到一个列表

[[1,5,6,7], [2,3,4,5]]  

有没有办法有效地做到这一点?列表或 numpy 数组都可以。

标签: pythonlist

解决方案


zip是你的朋友:

>>> a = [[1], [2]]
>>> b = [[5, 6, 7], [3, 4, 5]]
>>> [x+y for x, y in zip(a, b)]
[[1, 5, 6, 7], [2, 3, 4, 5]]

您也可以使用map; 该模块为此类用途operator提供了现成的定义。lambda x,y: x + y

>>> import operator
>>> list(map(operator.add, a, b))

推荐阅读