更改矩阵拼图的特定元素 - Python

时间:2017-09-06 09:22:38

标签: python-3.x matrix

我必须解决如何用零替换零元素下面的元素,并输出矩阵中剩余元素的总和。

例如,[[0,3,5],[3,4,0],[1,2,3]]应输出3 + 5 + 4 + 1 + 2之和,即15。

到目前为止:

import maya.cmds as cmds

cmds.SelectAllGeometry()

代码输出看似随机的数字。 有人能解决什么问题吗?谢谢

1 个答案:

答案 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以使代码更具可读性。