파이썬에서 어떤 것이 서로 같은 지를 확인할 때 사용할 수 있는 연산자로는 is와 ==이 있습니다. 엄밀하게 따지면 이 둘은 다릅니다.
== 는 단순히 값이 같은지를 체크한다면, is는 메모리 상 같은 주소에 있는 값을 바라보고 있는 지를 체크합니다.
예시를 통해 살펴보겠습니다.
== 연산자 vs is 연산자
name1 변수에 "심교훈"이라는 문자열을 담았고, name2 변수에도 "심교훈"이라는 문자열을 바인딩 했습니다. == 연산자로 이 둘을 비교해보니 True를 반환해줬습니다. 반면 is 연산자로 비교했을 때는 False를 반환해줍니다. 왜 그런지 이유를 살펴보겠습니다. id 함수로 두 변수에 바인딩되어 있는 값의 주소를 확인해보면 서로 다릅니다. 그렇기 때문에 is 연산자로는 False가 반환된 것입니다.
이번에는 name1에 "심교훈"이라는 값을 바인딩 하고, name2 변수에는 name1 변수를 바인딩해주겠습니다. 그 다음에 ==, is 연산자로 비교해보겠습니다.
이번에는 모두 True가 반환되었습니다. id 함수로 주소를 확인해보면 같은 것을 알 수 있습니다.
즉, 같은 위치에 있는 값을 name1이라는 변수와 name2라는 변수가 바라보고 있는 것입니다.
관련 글
'Dev > python' 카테고리의 다른 글
[pandas] 데이터프레임에서 특정 셀의 값 변경하기 (0) | 2023.08.14 |
---|---|
[python] logging 모듈로 로그 찍을 때 f-string 포매팅 권장하지 않음 (0) | 2023.08.11 |
[python] Enum의 네임, 값 리스트 추출하는 방법 (0) | 2023.08.11 |
[python] 문자열이 어떤 문자열로 시작하는지 확인하는 메서드, startswith() (0) | 2023.07.25 |
[python] Enum의 값으로 튜플 사용하는 방법 (0) | 2023.07.22 |
[python] 딕셔너리의 리스트, 딕셔너리 값을 기준으로 정렬 (0) | 2023.07.21 |
[python] unittest로 단위 테스트하기(소요 시간 체크도 함께) (0) | 2023.07.17 |
[python] 문자열을 어떤 구분자로 분리하여 리스트에 담는 방법, split() 메서드 (0) | 2023.07.16 |