파이썬의 딕셔너리(Dictionary)는 키(Key)와 값(Value)을 한 쌍으로 저장하는 자료구조입니다. 실제 개발 과정에서는 특정 키가 딕셔너리에 이미 존재하는지 확인해야 하는 경우가 자주 발생합니다. 이 글에서는 딕셔너리에 키가 존재하는지 검사할 수 있는 대표적인 두 가지 방법을 예제와 함께 살펴보겠습니다.
1. in 연산자 사용하기
가장 간단하고 직관적인 방법은 in 연산자를 활용하는 것입니다. in 연산자는 해당 키가 딕셔너리에 존재하면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 이를 if 문과 결합하면 키의 존재 여부에 따라 다른 결과를 출력할 수 있습니다.
예제 코드
Adict = {'Mon':3,'Tue':5,'Wed':6,'Thu':9}
print("The given dictionary : ",Adict)
check_key = "Fri"
if check_key in Adict:
print(check_key,"is Present.")
else:
print(check_key, " is not Present.")실행 결과
위 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.
The given dictionary : {'Thu': 9, 'Wed': 6, 'Mon': 3, 'Tue': 5}
Fri is not Present.예제에서 'Fri'라는 키는 딕셔너리에 없으므로 "is not Present."가 출력됩니다. 참고로 in 연산자는 해시 기반으로 동작하기 때문에 매우 빠른 속도로 검사를 수행하며, 일반적으로 가장 권장되는 방식입니다.
2. dict.keys() 메서드 사용하기
dict.keys() 메서드는 주어진 딕셔너리에 포함된 모든 키를 반환합니다. 반환된 키 뷰(view) 객체에 in 연산자를 적용하면 특정 키가 딕셔너리에 속해 있는지 확인할 수 있습니다.
예제 코드
Adict = {'Mon':3,'Tue':5,'Wed':6,'Thu':9}
print("The given dictionary : ",Adict)
check_key = "Wed"
if check_key in Adict.keys():
print(check_key,"is Present.")
else:
print(check_key, " is not Present.")실행 결과
위 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.
The given dictionary : {'Thu': 9, 'Wed': 6, 'Mon': 3, 'Tue': 5}
Wed is Present.예제에서 'Wed'라는 키는 딕셔너리에 실제로 존재하므로 "is Present."가 출력됩니다.
마무리
두 방법 모두 동일하게 작동하지만, 일반적으로는 dict.keys()를 명시적으로 호출하는 것보다 in 연산자만 사용하는 첫 번째 방법이 더 간결하고 효율적입니다. 상황에 맞게 선택하여 사용하면 됩니다.