【Codewars-行列式を求める】python


【題目】与えられた行列の行列式を求める【解】
def det(m):  
    if len(m) <= 0:  
        return None  
    if len(m) == 1:  
        return m[0][0]  
    else:  
        s = 0  
        for i in range(len(m)):  
            n = [[row[a] for a in range(len(m)) if a != i] for row in m[1:]]  
            if i % 2 == 0:  
                s += m[0][i] * det(n)  
            else:  
                s -= m[0][i] * det(n)  
    return s