【问题标题】:summing list inside list by position in python [duplicate]在python中按位置对列表内的列表求和[重复]
【发布时间】:2017-11-16 01:33:33
【问题描述】:

我有一个看起来像这样的列表,我想总结每个位置的值,以便生成一个只有三个值的列表

print x
[[0, 0, -1], [0, 0, -1], [0, 0, 0], [1, 0, 0], [0, 0, 1]]

例如,x[0][1] 应与 x[1][1]x[2][1]x[3][1]x[4][1] 中的值相加。同样x[0][2] 应与x[1][2]x[2][2] 等相加。

输出应该是这样的

print output
[1, 0, -1]

【问题讨论】:

    标签: python list loops


    【解决方案1】:

    使用 numpy:

    np.sum(x, axis=0) 
    

    使用原生列表:

    [sum(y) for y in zip(*x)]
    

    【讨论】:

      【解决方案2】:

      我会使用Julien's 答案,因为它更具可读性,但为了给你一个替代方案,你可以使用mapzip 函数。

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

      【讨论】:

        【解决方案3】:

        只需组合 for 循环:

        outlist=[]
        for i in range(len(L[0])):
            sum = 0
            for subL in L:
                sum += subL[i]
            outlist.append(sum)
        
        print(outlist)
        

        输出:

        [1, 0, -1]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-10
          • 2019-09-10
          • 1970-01-01
          • 2018-08-12
          • 2013-08-11
          • 2015-11-14
          • 1970-01-01
          相关资源
          最近更新 更多