✅ Membership & Identitiy Operators (멤버십 & 아이덴티티 연산자)
Python에서는 멤버십 연산자(Membership Operators) 와 아이덴티티 연산자(Identity Operators) 를 사용하여 특정 값이 존재하는지 확인하거나, 객체의 동일성을 비교할 수 있습니다. 이번 글에서는 이 두 연산자의 개념과 활용법을 알아보겠습니다.
1️⃣ 멤버십 연산자 (Membership Operators)
멤버십 연산자는 값이 특정 시퀀스(리스트, 튜플, 문자열, 딕셔너리 등) 안에 존재하는지 확인할 때 사용합니다.
연산자설명예제결과
연산자 | 설명 | 예제 | 결과 |
in | 특정 값이 시퀀스 안에 있으면 True 반환 | 3 in [1, 2, 3] | True |
not in | 특정 값이 시퀀스 안에 없으면 True 반환 | 5 not in [1, 2, 3] | True |
✅ 예제 코드
lst = [1, 2, 3, 4, 5]
print(3 in lst) # True (3은 리스트 안에 존재)
print(10 in lst) # False (10은 리스트에 없음)
print(6 not in lst) # True (6은 리스트에 없음)
text = "hello world"
print("h" in text) # True ('h'는 문자열에 포함됨)
print("z" in text) # False ('z'는 문자열에 없음)
✅ 딕셔너리에서 in 연산자
딕셔너리에서 in을 사용하면 키(key)의 존재 여부를 확인합니다.
d = {"name": "Alice", "age": 25}
print("name" in d) # True (키 'name'이 존재)
print("Alice" in d) # False (값은 확인 불가)
2️⃣ 아이덴티티 연산자 (Identity Operators)
아이덴티티 연산자는 두 객체가 동일한 메모리 주소를 가리키는지 확인할 때 사용합니다.
연산자 | 설명 | 예제 | 결과 |
is | 두 객체가 동일한 메모리 주소를 가지면 True 반환 | a is b | True or False |
is not | 두 객체가 다른 메모리 주소를 가지면 True 반환 | a is not b | True or False |
✅ 예제 코드
a = [1, 2, 3]
b = a # 같은 리스트를 참조
c = [1, 2, 3] # 새로운 리스트 생성
print(a is b) # True (같은 객체를 참조)
print(a is c) # False (값은 같지만 다른 객체)
print(a == c) # True (값이 같으므로 True)
✅ is vs == 차이점
- is → 객체의 메모리 주소 비교 (동일 객체인지 확인)
- == → 객체의 값 비교 (내용이 같은지 확인)
x = 10
y = 10
z = 20
print(x is y) # True (같은 정수 객체 참조, 파이썬 내부 최적화 때문)
print(x == y) # True (값이 동일함)
print(x is z) # False (다른 객체 참조)
📝 마무리 정리
연산자 | 설명 |
in | 값이 시퀀스 내에 존재하는지 확인 |
not in | 값이 시퀀스 내에 존재하지 않는지 확인 |
is | 두 객체가 같은 메모리 주소를 가리키는지 확인 |
is not | 두 객체가 다른 메모리 주소를 가리키는지 확인 |
📌 멤버십 연산자는 포함 여부를, 아이덴티티 연산자는 객체의 동일성을 확인할 때 사용됩니다!
'Python Basic Syntax (파이썬 기초 문법) > Operators (연산자)' 카테고리의 다른 글
Infix Notation & Postfix Notation (중위 & 후위 표기법) (1) | 2025.02.17 |
---|---|
Ternary Operator (삼항 연산자) (0) | 2025.02.17 |
Bitwise Operators (비트 연산자) (0) | 2025.02.17 |
Assignment Operators (할당 연산자) (0) | 2025.02.17 |
Basic Operators (기본 연산자) (0) | 2025.02.17 |