矩阵Python的每一行的总和数

时间:2017-05-22 01:10:12

标签: python sum

lista = [[1,2,3],[4,5,6],[7,8,9]]

print(lista)

def filas(lista):

    res=[]
    for elemento in lista:
        x = sum(lista[elemento])
        res.append(x)
    print(res)

我需要将每行的数字相加,然后将其作为列表打印出来。似乎我遇到的问题是我尝试对子列表求和,而不是每行的数字。

4 个答案:

答案 0 :(得分:1)

您遇到的问题是,您已经在迭代元素,因此不必将其用作索引:

    x = sum(elemento)

它通常被认为是不好的形式,但要迭代你将使用的索引:

for i in range(len(lista)):
    x = sum(lista[i])

但是,如果不引入任何其他模块,您可以使用map()或简单的列表理解:

>>> res = list(map(sum, lista))   # You don't need `list()` in Py2
>>> print(res)
[6, 15, 24]

或者

>>> res = [sum(e) for e in lista]
>>> print(res)
[6, 15, 24]

答案 1 :(得分:0)

你想这样吗?

lista = [[1,2,3],[4,5,6],[7,8,9]]

print(lista)

def filas(lista):
    summed_list = [sum(i) for i in lista]
    print(summed_list)
filas(lista)

答案 2 :(得分:0)

使用点积,您可以轻松做到这一点。这比任何循环都要快得多。

lista = np.float32([[1,2,3],[4,5,6],[7,8,9]])
vet_one = np.ones(len(lista))
vet_sum = lista.dot(vet_one)

答案 3 :(得分:-1)

这是你想要做的吗?

def filas(lista):
    res=[]
    for elemento in lista:
        x = sum(elemento) # <- change this line.
        res.append(x)
    print(res)