2013-12-08 3 views
3

일부 문자열을 구문 분석하는 스크립트를 Python으로 작성했습니다.Python에서 여러 조건을 단순화하는 방법

문제는 문자열에 일부 부품이 들어 있는지 확인해야한다는 것입니다. 내가 찾은 방식은 충분히 똑똑하지 않습니다.

if ("CondA" not in message) or ("CondB" not in message) or ("CondC" not in message) or ...: 

이를 최적화 할 수있는 방법이 있나요 : 여기

내 코드? 나는이 상태에 대해 6 가지 다른 검사를하고있다.

if any(c not in message for c in ("CondA", "CondB", "CondC")): 
    ... 

답변

2

any() 또는 all()와 발전기를 사용 :

2

당신은 any 기능을 사용할 수 있습니다

if not all(map(message.__contains__, ('CondA', 'CondB', ...))): 
: 파이썬 3에서

if any(c not in message for c in ('CondA', 'CondB', ...)): 
    ... 

을, 당신은 또한 map()의 사용은 게으른 것을 만들 수

+0

주기에 목록을 사용할 수 있습니까? 예 : 목록에있는 C에 대해 – GiuseppeP

+0

@ user2078176 물론 가능합니다. – ndpu

관련 문제