Skip to content

Instantly share code, notes, and snippets.

@hongdonghyun
Created November 7, 2018 01:29
Show Gist options
  • Save hongdonghyun/a712251c158e946c7f87adb92c10be7c to your computer and use it in GitHub Desktop.
Save hongdonghyun/a712251c158e946c7f87adb92c10be7c to your computer and use it in GitHub Desktop.
재희님 답변
안녕하세요 재희님
홍동현입니다. :)
저는 지금부터 파이썬입니다.
파이썬이 재희님이 작성하신 코드를 어떻게 읽나
파이썬의 입장에서 읽어보도록 하겠습니다.
a 라는 변수에 [1,4,2,5]라는 리스트를 담는다고하네요.
그럼 현재 a에는 [1,4,2,5]가 들어있습니다.
그다음 tuple(a)
파이썬은 "a를 tuple로 만들었어!!!!" 하고 끝냈습니다.
여기서 a를 tuple로 만들었다고만 했지 만들어서 어디다 담았다곤 하지 않았죠 <--- 여기가 중요합니다.
tuple 내장함수는 원래 a의 객체를 수정하지 않아요.
a에 들어있는 값을 가지고 새로운 tuple객체를 만들어내기 때문에
다시 변수에 담아주는액션이 필요합니다.
원하시는 동작대로 진행되려면 다음과 같겠죠.
a = [1, 4, 2, 5]
a = tuple(a)
print(a)
이제는 파이썬이 a에 들어있는 값을 가지고 tuple객체를 만든후 a변수에 다시 할당하기 때문에
출력을하게되면 원하시는 동작을 하게 될겁니다.
a = [1,4,2,5]
print(id(a))
print(id(tuple(a)))
다음과 같은 코드를 pythontutor에 직접 실행해보세요.
id 내장함수는
객체를 입력받아 객체의 고유 주소값을 리턴하는 함수입니다.
a와 tuple(a)의 고유주소값이 서로 달라요
이것을 통해 우리는 tuple내장함수가 새로운 객체를 만들어 준다는걸 알 수 있죠?
많은부분을 말씀드려서 이해하기 어려우실거라 생각됩니다.
분명 어려운내용이 맞고 한번에 이해하는건 더더욱 어려운게 정상입니다.
두려워 하지 마시고 pythontutor에 재희님이 작성하신 코드와 제가 작성해드린 코드를 둘다 돌려보시면서
차이점을 찾아보세요.
그리고 그런 부분을 구글에 검색도 해보시고(naver 안돼요 ㅎㅎ) 이해가 잘 안되시면 저한테 또 질문해주세요.
pythontutor는 처음배울때 사용하면 엄청난 도움을주는 좋은 사이트입니다.
시각화가 잘되어있어서 처음배우시는분들이 받아들이기 쉬워요.
@cbw1030
Copy link

cbw1030 commented Nov 7, 2018

감사합니다 강사님

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment