파이썬에서 숫자, 문자열, 리스트, 더블은 모두 오브젝트입니다.
오브젝트가 같은 종류인지 판단하기 위해서 is 연산자를 사용 합니다.
x is y
⇒ x 와 y 가 같은 오브젝트의 경우 True
x not is y
⇒ x 와 y 가 다른 오브젝트의 경우 True
비교를 하는 연산자로 ==가 있습니다.
==연산자는 오브젝트의 값이 같은지 확인하는 경우 사용합니다.
종류가 다른 오브젝트라도 값이 같으면 True를 반환합니다.
그에 비해 is 연산자는 값이 같더라도 오브젝트가 다르면 False를 반환합니다.
== 연산자와 is 연산자를 사용해보겠습니다.
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list1 == list2
>>> True
list1 is list2
>>> False
== 연사자로 2개의 리스트를 비교하면 True를 반환합니다.
리스트의 경우는 각 요소가 같은 데이터 타입이고, 값이 같은 경우 True를 반환합니다.
is연산자는 False를 반환했습니다.
이유는 값은 같지만 오브젝트가 각각 별개이기 때문입니다.
다음 리스트를 보도록 하겠습니다.
리스트를 작성하고 작성한 리스트를 list2에 대입하겠습니다.
list1 = [1, 2, 3]
list2 = list1
list1 == list2
>>> True
list1 is list2
>>> True
list1과 list2는 같은 오브젝트를 참조하고 있습니다.
그렇기 때문에 값을 비교하는 ==연산자도 True를 반환하고, 오브젝트를 판단하는 is 연산자도 True를 반환합니다.
이처럼 == 연산자는 값을 비교하지만 is 연산자는 오브젝트를 비교하는 것을 알 수 있습니다.
댓글