1
키의 두 번째 단어를 기반으로 값을 조건부로 삽입 할 수있는 람다 함수를 사용하여 사전을 만들려고합니다.defaultdict를 사용하여 람다 함수로 사전을 만드는 방법은 무엇입니까?
Example:
wts = defaultdict(lambda x: if x[1] == somevalue then 1 else 0)
키의 두 번째 단어를 기반으로 값을 조건부로 삽입 할 수있는 람다 함수를 사용하여 사전을 만들려고합니다.defaultdict를 사용하여 람다 함수로 사전을 만드는 방법은 무엇입니까?
Example:
wts = defaultdict(lambda x: if x[1] == somevalue then 1 else 0)
파이썬에서 conditional expression 보이는 같은 : khelwood는 의견에 지적
wts = defaultdict(lambda x: 1 if x[1] == somevalue else 0)
할 경우는 defaultdict
의 공장 출하시 기능이 인수를하지 않습니다 당신의 예에서
then_expr if condition else else_expr
. 당신은 직접 dict.__missing__
를 오버라이드 (override) 할 필요가 :
class WTS(dict):
def __missing__(self, key):
return 1 if key[1] == somevalue else 0
wts = WTS()
또는 더 읽기 :
class WTS(dict):
def __missing__(self, key):
if key[1] == somevalue:
return 1
else:
return 0
공장 기능을'defaultdict'에 대한 것은 제로 인수를해야한다. 그래서 그것은 효과가 없을 것입니다. – khelwood
key = (A, somevalue)에 대해 어떻게 호출합니까? – codepk
@khelwood, 고마워! 업데이트 됨. – kay