간단한 질문! 빨리 답해주세요(파이썬 리스트 등호 오류?)

조회수 805회

a=b=[0] print(a[0]) b[0]=1 print(a[0])

위의 코드에서 처음 리스트를 선언할 때 빼고는 따로 a의 값을 조정하지 않았는데 왜 b의 값이 자동으로 a의 값에 대입된 건가요? 리스트=리스트라고 선언하면 한 번 선언하고 끝나는 것이 아니라 두 리스트를 하나로 취급하는 건가요? 왜 그런 건지 알려주세요

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

1 답변

  • 두 리스트가 하나로 취급된다기보다는 두 변수가 하나의 객체를 포인팅하고 있는 겁니다.

    "파이썬에서 객체는 참조로 저장됩니다. ab에 할당한다는 건 a의 값을 할당하는 게 아니라 a가 가리키고 있는 객체를 b가 가리키도록 한다는 뜻이죠. 값을 줘서 할당을 하고 싶으시다면 복사를 하시면 됩니다." (출처)

    fiddle을 만들어 보았으니 한번 여러모로 테스트하면서 연구해 보세요.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)