2014-02-05 4 views
0

PHP 백그라운드에서 Python을 시작하기 시작했습니다. 나는 "if ... in"문장의 결과를 변수에 할당하는 더 우아한 방법이 있는지 궁금해하고 있었다.Python의 "if ... in"문에서 부울 값 할당

나는 현재이 코드 라인의 불필요한 양처럼 보이거나이 절대 최소 및 파이썬 스타일 가이드를 충족 나에게

is_holiday = False 
if now_date in holidays: 
    is_holiday = True 

합니까?

+2

'if ... in' 문과 같은 것은 없습니다. 'in'은 부울 값을 생성하는 중위 연산자입니다. 'if' 문은 스위치 온하기 위해 불리언 값이 필요합니다; 이 경우, 그 값은'in' 연산자에 의해 제공됩니다. – chepner

답변

10
is_holiday = now_date in holidays 
+0

맞아.하지만이 특별한 경우에만 맞지, 안 그래? – gravetii

+3

@gravetii : 부울을 생성하는 * 모든 * 표현식에 맞습니다. –

+1

사실, 기본적으로 모든 var = False; if boolean_expr() : var = True;'는 var = boolean_expr()으로 대체 될 수 있습니다. – RemcoGerlich

2

사용 Conditional expressions :

is_holiday = True if now_date in holidays else False

하거나 is_holiday = now_date in holidays.

+2

어, * 표현 자체가 * 부울을 생성 할 때 * 조건부 표현을 언급하는 이유는 무엇입니까? –

+3

또는'is_holiday = True (휴일 인 경우 now_date, 그렇지 않으면 거짓) else False' ... :-) – RemcoGerlich

+0

@MartijnPieters, 방금 그걸 생각 해낸다. 아마도 OP에 대한 새로운 정보 일 것이고 더 일반적이다.) – zhangxaochen