リストのエイリアシングが Python の問題であることは知っていますが、それを回避する方法がわかりません。
def zeros(A):
new_mat = A
for i in range(len(A)):
for j in range(len(A[i])):
if A[i][j]==0:
for b in range(len(A)):
new_mat[b][j] = 0
else:
new_mat[i][j] = A[i][j]
return A
A の値をまったく変更していませんが、A を返すと、まだ変更されています。
>>> Matrix = [[1,2,3],[5,0,78],[7,3,45]]
>>> zeros(Matrix)
[[1, 0, 3], [5, 0, 78], [7, 0, 45]]
このリストはエイリアシングですか? もしそうなら、エイリアシングを起こさずに 2D 配列の要素をどのように変更しますか? どうもありがとう<3。