为了感受Python的列表生成器的威力,写了个简单的程序——递归求矩阵的行列式,效率可能没numpy高,欢迎各位指正。
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
使用列表生成器使得求剩余矩阵变得异常简单,再次被Python优美的语法震撼到了。。。