Python2D列表以添加列的值
因此,我必须使用函数def sumColumnmatrix,columnIndex来添加由用户输入的行创建的列的值,从这一点上我不太清楚该怎么做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 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
但是,请始终双重控制输入请用四个前导空间适当地格式化您的代码,并添加一个问题。请添加一些说明。请考虑编辑您的帖子,以添加更多关于您的代码所做的解释以及它为什么会解决问题的解释。即使答案是有效的,但它大多只包含代码,这通常不会帮助OP理解他们的问题。如果只是猜测的话,也建议你不要发布答案。一个好的答案会有一个合理的理由来解释为什么它可以解决OP的问题。你还想让我补充什么?缺少什么信息?你凭什么认为这是猜测?
def sumColumn(matrix, columnIndex):
sum = 0
for i in range(len(matrix)):
sum += matrix[i][columnIndex]
return sum