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]