반응형
안녕하세요. BlockDMask 입니다.
오늘은 파이썬 딕셔너리에서 get() 메서드와 [](대괄호)를 이용한 직접 접근 방식의 차이점에 대해 알아보겠습니다.
딕셔너리는 키-값 쌍을 저장하는 자료구조로, 데이터를 효율적으로 관리하는 데 유용합니다. 하지만 키를 조회할 때 get()과 []를 어떻게 사용할지 고민될 수 있습니다. 각각의 방식이 어떤 차이를 가지며, 언제 어떤 방식을 사용하면 좋은지 살펴보겠습니다.
1. 딕셔너리에서 get()과 []의 기본 차이점
딕셔너리에서 값을 조회하는 대표적인 두 가지 방법은 get() 메서드를 사용하는 것과 [](대괄호)로 직접 접근하는 것입니다.
data = {"name": "Alice", "age": 25}
[] (대괄호)로 직접 접근
print(data["name"]) # 출력: Alice
print(data["age"]) # 출력: 25
.get() 메서드로 접근
print(data.get("name")) # 출력: Alice
print(data.get("age")) # 출력: 25
위 두 방식은 딕셔너리에 존재하는 키를 조회할 때는 동일한 결과를 반환합니다.
2. 존재하지 않는 키를 조회할 때의 차이
가장 큰 차이점은 존재하지 않는 키를 조회할 때 발생하는 동작입니다.
[] 방식 (KeyError 발생)
print(data["gender"]) # KeyError: 'gender'
- data 딕셔너리에 "gender" 키가 존재하지 않으면 KeyError가 발생합니다.
.get() 방식 (None 반환)
print(data.get("gender")) # 출력: None
- get()을 사용하면 키가 없을 경우 기본값으로 None을 반환합니다.
- 오류가 발생하지 않으므로 프로그램이 중단되지 않습니다.
3. .get()의 기본값 설정
get() 메서드는 키가 없을 때 반환할 기본값을 설정할 수 있습니다.
print(data.get("gender", "Unknown")) # 출력: Unknown
- 기본값을 설정하면 키가 없을 때에도 안전하게 대체값을 제공할 수 있습니다.
4. 언제 get()과 []를 사용해야 할까?
사용 방식 장점 단점
data[key] | 키가 반드시 존재할 때 사용 | 키가 없으면 KeyError 발생 |
data.get(key) | 키가 없을 경우에도 안전 | 기본값이 필요할 수도 있음 |
✅ [] 사용 추천 상황
- 키가 반드시 존재한다고 확신할 때 (KeyError 발생 가능성이 없을 때)
- 필수 데이터라서 값이 없으면 프로그램이 중단되는 것이 나을 때
✅ .get() 사용 추천 상황
- 키가 없을 수도 있는 경우 (KeyError를 방지해야 할 때)
- 기본값을 설정해서 안전한 처리가 필요한 경우
5. 실전 활용 예제
예제 1: 사용자 입력값 처리
user_data = {"username": "blockdmask", "email": "test@example.com"}
def get_user_info(key):
return user_data.get(key, "정보 없음")
print(get_user_info("username")) # 출력: blockdmask
print(get_user_info("phone")) # 출력: 정보 없음
- get()을 사용하여 존재하지 않는 키에 대한 기본값을 제공할 수 있습니다.
예제 2: 데이터베이스 조회 시 안전한 처리
db_result = {"id": 1, "name": "Alice"}
user_age = db_result.get("age", "나이 정보 없음")
print(user_age) # 출력: 나이 정보 없음
- 데이터베이스 조회 결과에서 특정 값이 없는 경우 get()을 사용하면 오류 없이 기본값을 설정할 수 있습니다.
6. 결론
✅ []는 키가 반드시 존재할 때 사용하고, 키가 없으면 KeyError가 발생합니다.
✅ .get()은 키가 없어도 오류 없이 None 또는 지정한 기본값을 반환합니다.
✅ 기본값이 필요하거나 오류 없이 코드를 실행하고 싶다면 .get()을 활용하는 것이 좋습니다.
이제 여러분도 상황에 맞게 get()과 []를 적절히 사용하여 효율적인 파이썬 딕셔너리 코드를 작성해 보세요! 😊
이상, 파이썬 딕셔너리에서 get() vs [] 차이점에 대해서 적어보았습니다.
오늘도 읽어주셔서 감사합니다!
반응형
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬 with open() 을 써야하는 이유 (0) | 2025.03.08 |
---|---|
[Python] 파이썬 enumerate() 함수로 인덱스와 값 동시에 가져오기 (0) | 2025.02.17 |
[python] 파이썬 리스트를 문자열로 변환 하는 방법 (2) | 2022.05.07 |
[python] 파이썬 같지 않다 != 정리 (0) | 2021.11.15 |
[python] 파이썬 문자열 뒤집기, 거꾸로 출력 하기 3가지 방법 (0) | 2021.11.10 |
[python] 파이썬 버전 확인 방법 (윈도우, 맥북) (0) | 2021.11.08 |
[python] 파이썬 is와 ==의 차이 (값, 참조) (0) | 2021.11.05 |
[python] 현재 파일 디렉토리(폴더) 위치 구하기 (2) | 2021.10.21 |