#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목정지영 교수님 리스트 관련 질문 있습니다!2020-04-27 19:15
작성자
첨부파일질문.png (197.1KB)

10강 리스트에서 Nested lists 관련 예제를 응용하여 여러 가지 실험을 해보다가 의문이 생겼습니다.

우선 첨부한 사진 중에 1번과 2번을 보시면, 두 경우 모두 life[0]라는 리스트에 canada라는 별칭을 사용하고, canada에 method를 사용하여 life[0]의 요소가 변경됨을 확인할 수 있었습니다.

하지만, 1번은 aliasing과 method를 따로 실행했고, 2번은 동시에 실행한 결과, 1번은 canada를 쳤을 때, life[0]이 나오지만, 2번은 noneType이 뜨더군요. 왜 이런 결과가 나오는지 설명해주시면 감사하겠습니다.


또한, 강의 중 list는 mutable하다는 것을 설명해 주실 때, string같은 경우, 첨부한 사진 속 3번과 같이 method는 life를 자체를 바꾸는 것이 아니라, life의 값을 복사하여 바꾼 다음에 canada에 할당, 즉 둘은 다른 메모리 주소값을 가진다고 하셨습니다.

하지만, 2번도 3번과 마찬가지로 method를 썼는데 이 경우는 life[0]의 값이 바뀌었습니다. 여기서 2,3번 둘 다 method를 사용했는데 다른 결과가 나오는지 의문입니다. 아마도 canada = life[0].append('앙')에서는 aliasing을 해서 같은 메모리 주소값을 가지고 있어서 인것 같은데, 만약 그러하다면, 첫번째 질문처럼 왜 aliasing된 canada가 이후에 noneType으로 뜨는지 궁금합니다.


종합적으로 제가 2번에 2번째 줄에서 정확히 어떤 일이 일어나는지 몰라서 생긴 의문들인 것 같습니다. 그 점을 위주로 설명해주시면 감사하겠습니다.

댓글
이전[re].과 ; 관련 재질문2020-04-27
다음[re]정지영 교수님 리스트 관련 질문 있습니다!2020-04-27