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)
我需要将每行的数字相加,然后将其作为列表打印出来。似乎我遇到的问题是我尝试对子列表求和,而不是每行的数字。
答案 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)