[英]Python 2D list to add the values of a column
因此,我必须使用函数def sumColumn(matrix,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):
sum = 0 # running sum
for row in matrix:
sum += row[columnIndex] # add value from specified column of row to sum
return sum
您可以使用sum
函数和生成器表达式从矩阵中的每一行获取该索引处的元素:
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
但是,请始终双重控制输入!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.