📜  Python|嵌套列表的逐列总和

📅  最后修改于: 2022-05-13 01:54:25.108000             🧑  作者: Mango

Python|嵌套列表的逐列总和

给定一个嵌套列表(其中子列表的长度相等),编写一个Python程序来查找给定列表的按列总和并将其返回到一个新列表中。

例子:

Input : [[1, 5, 3],
         [2, 7, 8],
         [4, 6, 9]]
Output : [7, 18, 20]

Input : [[20, 5],
         [2, 54],
         [45, 9], 
         [72, 3]]
Output : [139, 71]

方法#1:使用列表推导压缩

我们可以使用Python的zip函数将给定嵌套列表的每一列的总和包含在列表理解中。

# Python3 program to Column wise sum of nested list
  
def column_sum(lst):
      
     return [sum(i) for i in zip(*lst)]
      
# Driver code
lst = [[1, 5, 3], [2, 7, 8], [4, 6, 9]]
print(column_sum(lst))
输出:
[7, 18, 20]

方法 #2:使用map()方法

另一种方法是使用map() 。我们将sum函数应用于列中的每个元素,并相应地找到每列的总和。

# Python3 program to Column wise sum of nested list
  
def column_sum(lst):
      
    return list(map(sum, zip(*lst)))
      
# Driver code
lst = [[1, 5, 3], [2, 7, 8], [4, 6, 9]]
print(column_sum(lst))
输出:
[7, 18, 20]


方法#3:使用numpy.sum()

numpy.sum()函数返回指定轴上数组元素的总和。

# Python3 program to Column wise sum of nested list
from numpy import array
  
def column_sum(lst):
    arr = array(lst)
    return sum(arr, 0).tolist()
      
# Driver code
lst = [[1, 5, 3], [2, 7, 8], [4, 6, 9]]
print(column_sum(lst))
输出:
[7, 18, 20]