많은 프로그래밍 언어는 기본적으로 조건식을 정의하는 삼항 연산자를 지원합니다.
마찬가지로 파이썬의 삼항 연산자는 이진 조건의 결과를 기반으로 값을 반환하는 데 사용됩니다. 이진 값(조건)을 입력으로 사용하므로 "if-else" 조건 블록과 유사합니다. 그러나 함수와 유사하게 동작하는 값도 반환합니다.
구문
[on_true] if [expression] else [on_false]
두 정수를 비교하는 간단한 프로그램을 하나 작성해 보겠습니다. -
ㅏ. 파이썬 if-else 문 사용 -
>>> x, y = 5, 6 >>> if x>y: print("x") else: print("y") y
비. 삼항 연산자 사용
>>> x, y = 5, 6 >>> print("x" if x> y else "y") y
삼항 연산자를 사용하면 한 줄에 코드를 작성할 수 있습니다. 따라서 python은 기본적으로 조건을 먼저 평가하고 true이면 첫 번째 표현식을 평가하고 그렇지 않으면 두 번째 조건을 평가합니다.
>>> def find_max(a,b): return a if (a>b) else b >>> find_max(5, 6) 6
삼항 연산자를 구현하는 방법
다음은 삼항 연산자를 구현하는 다양한 방법입니다.
ㅏ. 파이썬 튜플 사용
>>> a, b = random(), random() >>> (b, a) [a>b] 0.5497848117028667
위는 -
와 동일합니다.>>> (b, a) [True] 0.5065247098746795
그러나 반환 값과 혼동되면 'b'또는 'b'가 반환됩니다. 위의 코드를 다시 작성해 봅시다.
>>> (f"b:{b}", f"a:{a}") [a>b] 'b:0.5497848117028667'
비. Python 사전 사용
>>> a, b = random(), random() >>> {False: f"b:{b}", True: f"a:{a}"}[a>b] 'a:0.8089581560973976'
키-값 쌍을 교환할 수 있습니다. -
>>> {True: f"a:{a}", False: f"b:{b}"}[a>b] 'a:0.8089581560973976'
씨. 람다 사용
파이썬 람다 함수를 사용하여 삼항 연산자로 작동할 수 있습니다. -
>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]() 'b:0.6780078581465793'
중첩 파이썬 삼항 연산자
이 연산자를 연결해 보겠습니다. -
>>> from random import random >>> x = random() >>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"
출력
'between 0 and 5'
x의 실제 값을 확인해보자 -
>>> x 0.08009251123993566