python - 如何通过添加每个元素来组合两个或多个列表

标签 python python-2.7

我的列表仅包含整数,如 [1,2,3][4,5,6] 。有时我什至有 [7,8,9]或更多列表。如何将每个元素添加在一起以形成相同长度的新列表?

[1,2,3] + [4,5,6] + [7,8,9] = [12,15,18]

我知道上面只会追加元素并创建一个更长的列表(包含 9 个元素),但我想按元素添加列表。

最佳答案

您可以将列表放入列表中,使用 * 运算符解压后zip子列表,然后映射求和到列表:

l = [[1,2,3], [4,5,6], [7,8,9]]
print(list(map(sum, zip(*l))))

输出:

[12, 15, 18]

编辑:以上内容适用于 Python 3.x。如果您使用的是早期版本,则可以使用 itertools.izip 而不是 zip,并且不需要调用 list 构造函数:

import itertools
l = [[1,2,3], [4,5,6], [7,8,9]]
print map(sum, itertools.izip(*l))

关于python - 如何通过添加每个元素来组合两个或多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287468/

相关文章:

python - 将 Python 列表传递给嵌入式 Rust 函数

python - 使用 cv2.createTrackbar 使用 python 模糊图像

python - Python 字符串中出现意外的空字符串

Python:numpy fftn 在 numpy 数组列表上

python - 将文本写入具有最大像素宽度的图像 Python PIL

Python 对象标识

python - 轮盘赌选择 : unsupported operand type(s) for &: 'numpy.float64' and 'numpy.float64'

Python 在函数调用返回之前打印?

python - 读取 .xlsx 并访问单元格值,但不按其位置

python matplotlib 极坐标图