Python 在没有numpy的情况下,如何按列对列表中的所有数字求和?

Python 在没有numpy的情况下,如何按列对列表中的所有数字求和?,python,list,Python,List,所以在Python NumPy中,我有一个列表,从0到99除以5: array_b = np.arange(0,100).reshape(5, 20) list_a = array_b.tolist() 我想按列添加列表中的数字,这样结果将是: [200 205 210 215 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 295] 我知道如何在数组版本中执行此操作,但我想在列表版本中执行相同的操作(不使用np.sum

所以在Python NumPy中,我有一个列表,从0到99除以5:

array_b = np.arange(0,100).reshape(5, 20)
list_a = array_b.tolist()
我想按列添加列表中的数字,这样结果将是:

[200 205 210 215 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 295]

我知道如何在数组版本中执行此操作,但我想在列表版本中执行相同的操作(不使用np.sum(array_b,axis=0))。 有什么帮助吗?

numpy
数组上使用
.sum(axis=0)

import numpy as np
result = np.array(values).sum(axis=0)
# [200 205 210 215 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 295]

使用其他
可能性

result = np.array(values).sum(axis=1)  # [ 190  590  990 1390 1790]
result = np.array(values).sum()        # 4950
将numpy导入为np
a=[…]]
求和数组=np.求和(a,轴=0)
如果不使用numpy,则可以非常优雅地使用:

list(map(sum, zip(*list_a)))
说明:

  • zip(*list_a)
    按元素聚合列表
  • map(sum,…)
    告诉您在每个聚合上应用
    sum
  • 最后,
    list(…)
    只需将
    map
    返回的迭代器解压缩到一个列表中

简单如(num)py…

您将如何手动完成此操作?首先用单词写出步骤,然后试着将这些单词翻译成code.numpy.sum(数组,axis=0)我想可以。你的标题提到numpy,但你的问题显示了列表列表。你能澄清一下,并为你目前的尝试添加一些代码吗?对不起!我澄清了这个问题。我正在考虑取出每个列表的索引[0]并将其相加,然后将其放入一个新列表并继续,但效果不太好。我知道如何在数组版本中执行此操作,但我想对列表执行相同的操作。是否有其他方法使用while循环?@Sun您可以使用循环来执行此操作!使用
while
循环,这当然是可能的,但我建议使用
for
循环
while
-如果要重复计算条件并循环,则循环非常有用,只要条件为真。在你的例子中,你确切地知道你的列表有多长,因此你已经知道从一开始你想要循环多少次。这是一个
for
循环的例子!