클래스 collections.defaultdict
는 기본값을 생성하는 데 사용되는 기본 팩토리를 사용합니다.
dict
-like 객체에 포함 된 값의 기본값이 False
인 경우 인스턴스는 다음과 같이 만들 수 있습니다.
d_false = defaultdict(bool)
기본값으로 True
? 를 달성하는 가장 파이썬적인 방법은 무엇입니까 ?
다른 말로하면, 표준 호출 가능 객체 반환 True
이 bool
있습니까?
물론 공장은 람다 식으로 만들 수 있습니다.
d_true = defaultdict(lambda: True)
그러나 이것은 바퀴를 재발 명 할 수 있습니다.
흠, 나는 모든 내장 타입 생성자가 falsy 값을 반환 생각 :
—
wjandrea
int() == 0
, list() == []
, str() == ''
, 등 나는이 작업을 수행하는 표준 방법이 생각하지 않습니다 그래서.
이
—
Mark Reed
lambda: value
구문은 정적 기본값으로 dict를 구성하는 관용적 인 Pythonic 방식입니다. 함수를 반환하는 더 간단한 방법은 없습니다 True
.
내 이전 의견에 따라, 밝혀 것은
—
wjandrea가
object()
truthy입니다 - 확실하지 그 유용 경우
lambda: True
그 기본 결정을 피클 할 필요가 없다면 괜찮습니다.