728x90
오늘 연구실의 뉴비 K쿤과 이야기를 하다가 알아낸 사실이 잇다. 바로.. 'is'와 '=='이 다른 의미라는 것...!!!
사실 처음 파이썬 문법을 배울 때는 둘의 차이점이 아리송해서 그냥 넘어갓다. 연결리스트 하면서 node is not None 할 때도 그냥.. 코드가 그렇게 쓰는 게 더 직관적이어서 그러케 썻다.
딱 분류하자면, is 는 주소값 비교 ==은 값 비교이다.
위 코드를 보면 값을 비교하는 두번째 코드는 같다고 출력하지만, 첫번째 코드는 들어잇는 요소는 모두 같지만 리스트라는 주소값을 가리키는 포인터 즉, 주소값이 다르기 때문에 안 돌아간다고 출력하게 된다.
물론 넘파이 배열도 안 돌아간다. 헷갈린다 싶다면 id()를 사용해서 두 아이디가 동일하면 is가 똑같은 거라고 생각하면 편할 것 같다. (참고로 id()는 객체의 주소값을 반환하는 내장 함수다)
여기서 원시 타입이란 정수, 실수, bool값을 의미한다. 그치만 파이썬은 모든 것이 객체이기에 원시 타입이나 레퍼런스 타입이 의미가 없다...
출처>> https://velog.io/@dnpxm387/TIL24-PYTHON-%EA%B8%B0%EC%B4%88-14
이 블로그에서 잘 설명해주었다. 이외에도 심심할 때 읽어보면 재밋는 내용들이 많아서 한 번 읽어보면 좋을 듯!!
'짜투리' 카테고리의 다른 글
[IDE] vscode에서 jupyter 사용하기 (0) | 2022.01.01 |
---|---|
[xml/DB 프젝-데이터 통합] 엑셀로 xml문서 만들기+자바 DOM Parser+XML valid+XML 파일 XSD 만들기 (2) | 2021.12.07 |
[python] 엑셀과 판다스 DataFram으로 데이터 정제하기 (0) | 2021.11.23 |
[JAVA] intelliJ에서 github에 코드 올리는 방법 (0) | 2021.11.21 |
[python] 2차원 리스트를 생성하고 요소 변경하는 차이 (0) | 2021.08.17 |