스타터반 문제 풀면서 배운 삼항연산자와 람다함수.
리스트 컴프리헨션과 비슷하면서도 다르고 재밌다.
삼항 연산자(Ternary Operator)는 조건에 따라 다른 값을 반환하는 간단한 방법임.
<>가 3개라서 삼항!
<참일 때 값> if <조건> else <거짓일 때 값>
number = 5
result = "양수" if number > 0 else "음수"
print(result) # 출력: 양수
a, b = 10, 20
max_value = a if a > b else b
print(max_value) # 출력: 20
삼항 연산자는 중첩할 수도 있지만, 가독성이 떨어질 수 있으므로 권장하지 않는다고 함.
number = 0
result = "양수" if number > 0 else "음수" if number < 0 else "0"
print(result) # 출력: 0
익명 함수(이름이 없는 함수)를 정의할 때 사용하는 방법임.
주로 짧고 간단한 함수를 빠르게 정의하려고 할 때 사용됨.
lambda 매개변수: 표현식
add = lambda x, y: x + y
print(add(3, 5)) # 출력: 8
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 출력: [2, 4, 6]
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 출력: [1, 4, 9, 16]
sorted() 함수에서 key 매개변수에 람다 함수를 사용해 정렬 기준을 지정할 수 있음.
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs)
# 출력: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
# 일반 함수
def add(x, y):
return x + y
# 람다 함수
add_lambda = lambda x, y: x + y
print(add(3, 5)) # 출력: 8
print(add_lambda(3, 5)) # 출력: 8