Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 사전에서 누락된 키 처리

<시간/>

Python에는 Dictionary라는 컨테이너가 하나 있습니다. 사전에서 키를 해당 값에 매핑할 수 있습니다. 사전을 사용하면 일정한 시간에 값에 액세스할 수 있습니다. 단, 주어진 키가 없을 경우 약간의 오류가 발생할 수 있습니다.

이 섹션에서는 이러한 종류의 오류를 처리하는 방법을 살펴보겠습니다. 누락된 키에 액세스하려고 하면 다음과 같은 오류가 반환될 수 있습니다.

예시 코드

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # This will return error

출력

AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-input-2-a91092e7ee85> in <module>()
      2 
      3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# This will return error

KeyError: 'Canada'

get() 메서드를 사용하여 KeyError 처리

get 메소드를 사용하여 키를 확인할 수 있습니다. 이 메서드는 두 개의 매개변수를 사용합니다. 첫 번째는 키이고 두 번째는 기본값입니다. 키를 찾으면 키와 관련된 값을 반환하지만 키가 없으면 두 번째 인수로 전달되는 기본값을 반환합니다.

예시 코드

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict.get('Australia', 'Not Found'))
print(country_dict.get('Canada', 'Not Found'))

출력

AU
Not Found

setdefault() 메서드를 사용하여 KeyError 처리

이 setdefault() 메서드는 get() 메서드와 유사합니다. 또한 get()과 같은 두 개의 인수가 필요합니다. 첫 번째는 키이고 두 번째는 기본값입니다. 이 방법의 유일한 차이점은 누락된 키가 있는 경우 기본값으로 새 키를 추가한다는 것입니다.

예시 코드

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
country_dict.setdefault('Canada', 'Not Present') #Set a default value for Canada
print(country_dict['Australia'])
print(country_dict['Canada'])

출력

AU
Not Present

defaultdict 사용

defaultdict는 컨테이너입니다. Python의 컬렉션 모듈에 있습니다. defaultdict는 기본 팩토리를 인수로 사용합니다. 초기에 기본 공장은 0(정수)으로 설정됩니다. 키가 없으면 기본 공장 값을 반환합니다.

메서드를 반복해서 지정할 필요가 없으므로 사전 개체에 더 빠른 메서드를 제공합니다.

예시 코드

import collections as col
#set the default factory with the string 'key not present'
country_dict = col.defaultdict(lambda: 'Key Not Present')
country_dict['India'] = 'IN'
country_dict['Australia'] = 'AU'
country_dict['Brazil'] = 'BR'
print(country_dict['Australia'])
print(country_dict['Canada'])

출력

AU
Key Not Present