私がやっていることは本当にばかげているに違いありませんが、ここで何がうまくいかないのかわかりません。私は中間の python ユーザーです。
特定の 2D マトリックスを 90 度回転させるロジックを作成しました。かなり単純なロジック。興味深いのは、マトリックスが実際に回転することですが、印刷しようとすると、一貫して最後の行のみが印刷されます。
ロジックは次のとおりです。
def mat_rot(X):
m = len(X)
n = len(X[0])
Xr = [[0]*m]*n
for k in range(n): # label: core_logic_for_loop
for l in range(m):
Xr[k][l] = X[m-1-l][k]
m = len(Xr)
n = len(Xr[0])
for i in range(m): # label: print_for_loop
for j in range(n):
sys.stdout.write(" i=%s j=%s, Xr=%s " %(i, j,Xr[i][j]))
print " "
return
[[a,b,c],[d,e,f]] のような行列を指定すると、[[d,a],[e,b],[f,c] として出力されるはずです。 ]
ここに私が直面している興味深い問題があります。core_logic_for_loop に必要な正確な値が含まれていることがわかります。for ループ内の要素を出力して確認しました。
しかし、print_for_loopに到達して値を出力するまでに、常に最後の行を取得するため、出力は次のようになります。
d a
e b
f c
私は得る:
f c
f c
f c
ここで何がうまくいかないのか理解していないようです:(