파이썬 행렬 계산에서 질문입니다. 선택하지 않은 항목까지 같이 값이 바뀝니다.

조회수 842회
def sumMatrix(A,B):
    answer = [[0]*len(A[0])]*len(A)

    for i in range(len(A)):
        for j in range(len(A[0])):
            a=A[i][j]+B[i][j]
            answer[i][j]=a
            print(answer)
            print(i,j,a,answer[i][j],A[i][j],B[i][j])
    return answer

print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))

결과

[[4, 0], [4, 0]]
0 0 4 4 1 3
[[4, 6], [4, 6]]
0 1 6 6 2 4
[[7, 6], [7, 6]]
1 0 7 7 2 5
[[7, 9], [7, 9]]
1 1 9 9 3 6
[[7, 9], [7, 9]]

여기서 answer[0][0]의 값만 지정되지 않고, 어째서 answer[1][0]의 내용이 바뀌는지 아무리 생각해도 모르겠습니다. 도와주십시오 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 자답입니다... 이런 경우 파이썬은 int 자료형인데도 reference 복사가 이루어 지네요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)