ですから、ネストされたループにとらわれて、半分の時間でそれらを理解しているように感じます。その後、別の問題に取り組み始め、それからもう理解できなくなります。多分私は物事を複雑にしすぎています。とにかく私の問題に戻って、私は単位行列を持っています
lst = [[1,0,0], [0,1,0], [0,0,1]]
単位行列かどうかをチェックするプログラムを作成しようとしているので、iとjのインデックスが同じインデックス(つまり、位置0のiと位置0のj、位置1のi)を持っていることがわかります。 jは位置1、iは位置2、jは位置2)であり、1に等しい場合、行列は単位行列になります。今の私の問題は、これをコンピューターに明確に表現するのに苦労しているような気がすることです。つまりlst[0][0], lst[1][1] and lst[2][2]
、すべて1に等しく、他のすべての値は0に等しい必要があります。私に答えを与えずに、誰かが私を正しい方向に動かすことができるでしょうか?私はこれを約2週間解決しようとしてきましたが、とても単純に見えるので解決できないことに不満を感じています...
ありがとう。
def identity(lst):
for i in lst:
for j in i:
if i == j and lst[i][j] == 1:
if i != j and lst[i][j] == 0:
return True
return False
私はどこが間違っているのか間違っていますか?
わかったと思います!!
def identity(lst):
size = len(lst)
for i in range(len(lst)):
if len(lst[i]) != size:
return False
for j in range(len(lst)):
if i == j and lst[i][j] != 1:
return False
elif i != j and lst[i][j] != 0:
return False
return True
iとjの印刷:
for i in range(len(lst)):
for j in range(len(lst)):
print("i:", i, "j:", j)
をもたらしました:
i: 0 j: 0
i: 0 j: 1
i: 0 j: 2
i: 1 j: 0
i: 1 j: 1
i: 1 j: 2
i: 2 j: 0
i: 2 j: 1
i: 2 j: 2
これは本当に私を大いに助けました!