Python2D列表以添加列的值

Python2D列表以添加列的值,python,Python,因此,我必须使用函数def sumColumnmatrix,columnIndex来添加由用户输入的行创建的列的值,从这一点上我不太清楚该怎么做 def sumColumn(matrix, columnIndex): return def getMatrix(): matrix = [] for row in range(3): print("Enter a 3-by-4 matrix row for row:%d" %row) row

因此,我必须使用函数def sumColumnmatrix,columnIndex来添加由用户输入的行创建的列的值,从这一点上我不太清楚该怎么做

def sumColumn(matrix, columnIndex):
    return

def getMatrix():
    matrix = []
    for row in range(3):
        print("Enter a 3-by-4 matrix row for row:%d" %row)
        row = input().split(' ')
        row = [float(i) for i in row]
        matrix.append(row)
    return matrix

def display(m):
    for row in m:
        print(row)

def main():
    m = getMatrix()
    print("\nThe matrix is")
    display(m)
    print()
    for col in range(len(m[0])):
        print("Sum of elements for column %d is %.2f" % (col, sumColumn(m,col)))

main()
如果可以使用numpy,那么可以在列上使用.sum

import numpy as np
def sumColumn(matrix, columnIndex):
    matrix = np.array(matrix)
    return matrix[:,columnIndex].sum()
这将提供以下输出:

Enter a 3-by-4 matrix row for row:0
'1 2 3 4'
Enter a 3-by-4 matrix row for row:1
'1 2 3 4'
Enter a 3-by-4 matrix row for row:2
'1 2 3 4'

The matrix is
[1.0, 2.0, 3.0, 4.0]
[1.0, 2.0, 3.0, 4.0]
[1.0, 2.0, 3.0, 4.0]

Sum of elements for column 0 is 3.00
Sum of elements for column 1 is 6.00
Sum of elements for column 2 is 9.00
Sum of elements for column 3 is 12.00
可以使用函数和生成器表达式从矩阵中的每一行获取该索引处的元素:

def sumColumn(matrix, columnIndex):
    return sum(row[columnIndex] for row in matrix)

您从未控制过每一行都有相同数量的列,这可能会导致以后出现错误

假设输入正确,您可以执行以下操作:

def sumColumn(matrix, columnIndex):
    sum = 0
    for i in range(len(matrix)):
        sum += matrix[i][columnIndex]
    return sum

但是,请始终双重控制输入def sumColumn(matrix, columnIndex): sum = 0 for i in range(len(matrix)): sum += matrix[i][columnIndex] return sum