Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 딕셔너리 get() 메서드 완벽 정리: KeyError 없이 안전하게 값 가져오기

파이썬의 get() 메서드는 표준 라이브러리에 포함된 기능으로, 딕셔너리(dictionary)에 저장된 요소에 접근할 때 사용합니다. 프로그래밍을 하다 보면 존재하지 않는 키(key)를 검색해야 하는 경우가 종종 발생하는데, 이때 인덱스 방식(dict[key])으로 접근하면 KeyError가 발생하며 프로그램이 비정상적으로 종료됩니다. 반면 get() 메서드를 사용하면 오류 없이 이러한 상황을 우아하게 처리할 수 있습니다.

get() 메서드의 문법

dict.get(key[, value])

매개변수 설명:

  • key — 딕셔너리에서 찾고자 하는 키 (필수)
  • value — 해당 키가 존재하지 않을 때 반환할 기본값 (선택 사항)

두 번째 매개변수인 value는 생략할 수 있으며, 지정하지 않은 상태에서 키를 찾지 못하면 None이 반환됩니다.

사용 예제

아래 예제에서는 Address(주소)와 Distance(거리)라는 두 개의 키를 가진 customer라는 딕셔너리를 생성합니다. 일반적인 인덱스 방식과 get() 메서드를 사용했을 때의 차이점을 확인해 보겠습니다.

customer = {'Address': 'Hawai', 'Distance': 358}

# 인덱스 방식으로 값 출력
print(customer["Address"])

# get() 메서드로 값 출력
print('Address: ', customer.get('Address'))
print('Distance: ', customer.get('Distance'))

# 딕셔너리에 존재하지 않는 키 조회
print('Amount: ', customer.get('Amount'))

# 존재하지 않는 키에 기본값 지정하여 조회
print('Amount: ', customer.get('Amount', 2050.0))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Hawai
Address: Hawai
Distance: 358
Amount: None
Amount: 2050.0

결과 분석 및 핵심 포인트

실행 결과를 통해 몇 가지 중요한 동작 방식을 확인할 수 있습니다.

  1. 키가 존재하는 경우: 인덱스 방식과 get() 메서드 모두 동일하게 값을 반환합니다.
  2. 키가 존재하지 않는 경우: 인덱스 방식이라면 KeyError로 프로그램이 중단되지만, get() 메서드는 None을 반환하여 프로그램이 계속 실행됩니다.
  3. 기본값을 지정한 경우: 두 번째 인자로 기본값(예제에서는 2050.0)을 전달하면, 키가 없을 때 해당 기본값이 반환됩니다.

즉, get() 메서드는 존재하지 않는 키에 대해서도 오류를 발생시키지 않고 유연하게 대응할 수 있는 안전한 접근 방법입니다. 특히 외부 데이터(JSON, API 응답 등)를 처리할 때 예외 처리 코드를 줄이고 코드의 가독성을 높이는 데 큰 도움이 됩니다.