2013-10-06 1 views
6

작성된 후 defaultdict (존재하지 않는 키가 호출 될 때 반환되는 값)를 변경하는 방법이 있습니까?* 초기화 후 defaultdict *의 기본 반환 값을 변경하십시오.

같은

d = defaultdict(lambda:1) 

같은 defaultdict가 생성 될 때 존재하지 않는 키 등 d['absent']으로 호출 될 때마다, d 1을 반환한다. 초기 정의 이후에이 기본값을 다른 값 (예 : 2) 으로 어떻게 바꿀 수 있습니까?

답변

10

defaultdict의 default_factory 속성에 새 값을 할당하십시오.

default_factory :

이 속성은 __missing__() 방법으로 사용되며 이 있으면 생성자의 첫 번째 인수에서 초기화되고, 없으면 None으로 초기화됩니다.

데모 :

>>> dic = defaultdict(lambda:1) 
>>> dic[5] 
1 
>>> dic.default_factory = lambda:2 
>>> dic[100] 
2 
+0

최고, 감사합니다! –

관련 문제