如何以最有效的方式在数组中添加元素?



>我有一个数组

myarray = [[a, b], [c, d], [e, f]]

我想得到

myarray_2 = [a + c + e, b + d + f]

如何在没有循环的情况下执行此操作?什么是最有效的方法,或者可能是最蟒蛇的方法?

单行方法可能是转置矩阵并对行求和:

list(map(sum, zip(*myarray)))

习语zip(*myarray)通过在包含每行相应元素的元组上创建迭代器来转置输入。

如果您正在处理数值数据,使用 numpy 可能是更好的方法:

np.array(myarray).sum(axis=0)

您可以使用zipsum和列表理解:

myarray = [[1, 2], [3, 4], [5, 6]]
myarray_2 = [sum(t) for t in zip(*myarray)]
print(myarray_2)

输出:

[9, 12]

无论子列表的大小如何,这都将起作用。

试试这个:

myarray_2 = list(map(sum, zip(*myarray)))

例如,如果myarray = [[1, 2], [3, 4], [5, 6]]myarray_2[9, 12]

最新更新