Python 값 비교 ==와 is 차이점

파이썬에서 숫자, 문자열, 리스트, 더블은 모두 오브젝트입니다.

오브젝트가 같은 종류인지 판단하기 위해서 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 연산자는 오브젝트를 비교하는 것을 알 수 있습니다.

댓글