我必须解决如何用零替换零元素下面的元素,并输出矩阵中剩余元素的总和。
例如,[[0,3,5],[3,4,0],[1,2,3]]应输出3 + 5 + 4 + 1 + 2之和,即15。
到目前为止:
import maya.cmds as cmds
cmds.SelectAllGeometry()
代码输出看似随机的数字。 有人能解决什么问题吗?谢谢
答案 0 :(得分:1)
您可以使用the zip function轻松删除低于零元素的元素。
def matrixElementsSum(matrix):
out = 0
# locate the zeros' positions in array & replace element below
for i,j in enumerate(matrix):
# elements in the first row cannot be below a '0'
if i == 0:
out += sum(j)
else:
k = matrix[i-1]
for x, y in zip(j, k):
if y != 0:
out += x
return out
现在考虑更有意义地命名变量。类似的东西:
def matrixElementsSum(matrix):
out = 0
# locate the zeros' positions in array & replace element below
for row_number, row in enumerate(matrix):
# elements in the first row cannot be below a '0'
if row_number == 0:
out += sum(row)
else:
row_above = matrix[row_number - 1]
for element, element_above in zip(row, row_above):
if element_above != 0:
out += element
return out
您应该查看list comprehensions以使代码更具可读性。