2014-09-20 4 views

답변

4

파이썬에서 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 
+3

공장 기능을'defaultdict'에 대한 것은 제로 인수를해야한다. 그래서 그것은 효과가 없을 것입니다. – khelwood

+0

key = (A, somevalue)에 대해 어떻게 호출합니까? – codepk

+0

@khelwood, 고마워! 업데이트 됨. – kay

관련 문제