从2D列表中的单个列添加元素

时间:2013-09-02 23:12:44

标签: python list python-2.7

我正在尝试创建一个函数,该函数将查找2D列表中一列的元素总和,但只能找到一个特定列。我可以找到很多关于如何为列表中的每一列找到总和的示例,但不能找到只给出一个特定列的列。列表必须来自不同的功能。

def sumColumn(matrix, columnIndex):
(No idea what on earth to put here...)
return total

2 个答案:

答案 0 :(得分:1)

对于重型矩阵工作,建议使用numpy

>>> import numpy as np

>>> matrix = [[0, 2, 0], 
              [0, 1, 0]]
>>> columnIndex = 1     # 1 means the second(middle) column
>>> np.array(matrix)[:, columnIndex].sum()
3

纯Python:

sum(row[columnIndex] for row in matrix)

答案 1 :(得分:0)

Oneliner:

sum_column = lambda l, i: sum(x[i] for x in l)

更具可读性,几乎是英文:

def sum_column(matrix, index):
    return sum(line[index] for line in matrix)