파이썬
[파이썬] is vs == 차이는?
앤테바
2021. 11. 20. 09:30
반응형
== (equality comparison)
- Equality Operator
- operands의 value의 동일함을 비교함
is (Identity comparison)
- operands가 가리키는(refer) 오브젝트가 동일한지 체크함
== 예시 코드
list1 = [1, 2, 3]
list2 = [1, 2, 3]
if list1 == list2:
print("true")
else:
print("false")
# output
# list1과 list2의 values가 모두 동일하므로
true
is 예시 코드
list1 = [1, 2, 3]
list2 = [1, 2, 3]
if list1 is list2:
print("true")
else:
print("false")
# output
# list1과 list2는 다른 객체를 가르키므로
false
==, is 예시
list1 = [1, 2, 3]
list2 = list1[:] # make a new copy
if list1 == list2:
print("true")
else:
print("false")
if list1 is list2:
print("true")
else:
print("false")
# output
# list2는 list1으로 부터 복사되어서 values는 동일하지만 메모리의 별도의 공간을 갖는다
true
false
Summary
- is와 ==는 다르다
- is는 동일 메모리 공간을 가르키는지 체크
- ==는 가르키는 메모리 공간의 데이터가 동일한지 체크
반응형