Python Basic Syntax (파이썬 기초 문법)/Operators (연산자)

Membership & Identitiy Operators (멤버십 & 아이덴티티 연산자)

영끼끼 2025. 2. 17. 14:50

✅ 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 두 객체가 다른 메모리 주소를 가리키는지 확인

 

📌 멤버십 연산자는 포함 여부를, 아이덴티티 연산자는 객체의 동일성을 확인할 때 사용됩니다!