English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在Python中,有一个称为字典的容器。在字典中,我们可以将键映射到其值。使用字典可以在恒定时间内访问值。但是,如果不存在给定的键,则可能会发生一些错误。
在这一节中,我们将看到如何处理此类错误。如果我们尝试访问丢失的键,则可能会返回这样的错误。
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()
Method가 KeyError를 처리我们可以说get方法来检查键。这个方法有两个参数。第一个是键,第二个是默认值。找到键后,它将返回与键相关联的值,但是当键不存在时,它将返回默认值,该默认值将作为第二个参数传递。
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} print(country_dict.get('Australia', '미找到')) print(country_dict.get('Canada', '미找到'))
출력 결과
AU 미找到
setdefault()
Method가 KeyError를 처리메서드setdefault()
메서드는 이와 유사합니다get()
메서드는 두 개의 파라미터가 필요합니다. 예를 들어get()
첫 번째는 키이고 두 번째는 기본 값입니다. 이 메서드의 유일한 차이점은 키가 없을 때 기본 값으로 새 키를 추가한다는 것입니다.
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} country_dict.setdefault('Canada', '미존재') # Canada에 기본 값을 설정 print(country_dict['Australia']) print(country_dict['Canada'])
출력 결과
AU 미존재
defaultdict는 컨테이너입니다. 그것은 Python의 collections 모듈에 위치합니다. defaultdict는 파라미터로 기본 공장을 사용합니다. 원래 기본 공장은 0(정수)으로 설정됩니다. 키가 없으면 기본 공장의 값을 반환합니다.
우리는 여러 번 메서드를 지정할 필요가 없으므로, 그것은 딕셔너리 객체에 더 빠른 메서드를 제공합니다.
import collections as col # 'key not present' 문자열로 기본 공장 설정 country_dict = col.defaultdict(lambda: '키가 없음') country_dict['India'] = 'IN' country_dict['Australia'] = 'AU' country_dict['Brazil'] = 'BR' print(country_dict['Australia']) print(country_dict['Canada'])
출력 결과
AU 키가 없음