采取下列措施:
matrix1 = [[1, 1], [2, 3]]
matrix2 = [[1, 1], [2, 3]]
在不使用其他库(如pandas、numpy等)的情况下,如何返回各种列表的总和(在本例中为2),如下所示:
[[2, 2], [4, 6]]
有以下几点
def addMatrix(m1, m2):
if len(m1) == len(m2):
return [x[0] + x[1] for x in zip(m1, m2)]
else:
raise ValueError("Given matrices are not the same size.")
它回来了
>>> addMatrix(matrix1, matrix2)
[[1, 1, 1, 1], [2, 3, 2, 3]]
这不是一个人想要的,只适用于列表,而不是列表
我们也尝试了以下方法,但给出了与上面相同的输出
new = []
def add(m1, m2):
for i, value in enumerate(m1):
if len(m1) == len(m2):
additional = m2[i]
new.append(value + additional)
else:
raise ValueError("Given matrices are not the same size.")
人们知道如何使用numpy实现这一点,但不使用任何库的方法是我们想要的
以下是numpy的有效解决方案
import numpy as np
matrix1_np = np.asarray(matrix1)
matrix2_np = np.asarray(matrix2)
add = matrix1_np + matrix2_np
add.tolist()
我注意到在以前的回答中有一种模式。它们都使用^{} 和^{}
可以处理2个以上列表的备选方案如下
如果我们以下面的矩阵为例
并打印结果
^{} 实际上,可以方便地同时循环两个列表。这里有一种只使用^{} 的方法
或者,在一行中
输出
可以使用^{} 和^{} 使用嵌套的列表理解。例如:
相关问题 更多 >
编程相关推荐