【发布时间】:2014-05-07 20:34:50
【问题描述】:
我在这里想要完成的是生成一个大小为 n x n 的矩阵。无论矩阵是什么,我都必须从左上角到右下角填写数字1,其他任何地方都填写0。
def identity(m):
new_identity = []
old_identity = m
for i in range(len(old_identity)):
new_identity.append(old_list[1])
return new_identity
例如,如果矩阵为 3,那么预期结果将是:
[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
或者为了更容易可视化:
[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
【问题讨论】:
-
numpy here的可能解决方案
-
@Bill,这个问题涉及比较,而不是创造。
-
oneliner no numpy:
ones = [[0]*i + [1] + [0]*(n-i-1) for i in range(n) ]
标签: python list matrix range identity