【发布时间】:2019-05-25 00:16:09
【问题描述】:
我想创建一个函数,将矩阵中的列中的数字相加并输出由总和组成的向量。但是,如果矩阵中有“无”值,则输出向量会自动获得该列的“无”值。我无法弄清楚如何为“无”值做部分。
我尝试了以下代码。
def sum_matrix (matrix):
#
# | 1 2 3 |
# | 1 2 3 |
# | 1 2 3 | -> |4 8 12|
# | 1 2 3 |
# _________
# 4 8 12
vektor = [[0] for i in range(0,len(matrix[0]))]
for j in range(0, len(matrix[0])): #rows 0-3 4
buffer = 0
for i in range(0, len(matrix)): #columns 3
if matrix[i][j] !=None:
buffer = buffer + matrix[i][j]
#vektor[j][0] = buffer
elif matrix[i][j] ==None:
vektor[j][0] = None
vektor[j][0] = buffer
return vektor
print (sum_matrix ([[0,0,0],[0,0,1],[0,1,0],[0,0,0]]))
print (sum_matrix ([[0,0,0],[0,None,1],[0,1,None],[0,0,0]]))
对于sum_matrix ([[0,0,0],[0,0,1],[0,1,0],[0,0,0]]),我得到[[0],[1],[1]],这很好。
对于 sum_matrix ([[0,0,0],[0,None,1],[0,1,None],[0,0,0]]),我仍然得到 [[0],[1],[1]],即使我应该得到 [[0],[None],[None]]
【问题讨论】:
标签: python for-loop multidimensional-array