[Python] 파이썬의 ? : 터너리 오퍼레이션 Develop Tip

일전 블로그에서 파이썬에서 C의

a = condition ? v1 : v2;

와 같은 터너리 오퍼레이션 (ternary operator)를 지원할 수 있는 방법이

>>> a = v1 if condition else v2

와 같은 방법이 있다고 하였는데요, 새로운 것을 또 알아서 이렇게 
포스팅 해 봅니다.

>>> v=2
>>> v2 = v or 4
>>> v2
2

위의 코드에서 v는 값이 있는 True 이므로 v2에는 2라는 v 값이 assign 되지만,

>>> v=0
>>> v2 = v or 4
>>> v2
4

위의 코드에는 v 값이 컨디션으로는 False가 되므로 or의 4라는 값이 들어갑니다.

이제는 완전 터너리 같은 경우 다음의 코드를 보시면,

>>> v = 4
>>> m = v==4 and 32 or 128
>>> m
32

와 같이 조건식 and or 로 값을 넣을 수 있습니다.

조건식이 True이면 그 다음 논리의 and 값을 evaluation 시키고,
조건식이 False이면 and 다음의 or 값을 evaluation 시키는 것이군요.

>>> a = v1 if condition else v2


>>> a = condition and v1 or v2

와 같은 효과를 나타냅니다.


어느분께는 도움이 되셨기를...

덧글

댓글 입력 영역

구글애드텍스트