Python/Python 예제 코드

Python - lambda 예제 코드

webnautes 2024. 11. 3. 03:14
반응형

Lambda는 이름 없는 일회용 함수를 만드는 방법입니다.

 

lambda 인자: 표현식



2021. 5. 29 최초작성

2024. 11. 3





같은 기능을 하는 일반 함수와 lambda 함수를 비교해봅니다.

 

# 일반 함수
def add(x, y):
    return x + y

# lambda 함수
add_lambda = lambda x, y: x + y

print(add(3, 5))        # 출력: 8
print(add_lambda(3, 5)) # 출력: 8




if문에서 사용

 

is_even = lambda x: "짝수" if x % 2 == 0 else "홀수"

print(is_even(4))    # 짝수
print(is_even(7))    # 홀수



# 삼항 연산자 사용
is_positive = lambda x: "양수" if x > 0 else ("0" if x == 0 else "음수")

print(is_positive(5))   # "양수"
print(is_positive(-3))  # "음수"
print(is_positive(0))   # "0"



한줄 if문과 lamba에서 if문 사용하는 것의 차이

 

# 한 줄 if문 사용
def check_value1(x):
    return "크다" if x > 10 else "작다"

# lambda 사용
check_value2 = lambda x: "크다" if x > 10 else "작다"

# 둘 다 같은 결과를 반환
print(check_value1(15))  # 크다
print(check_value2(15))  # 크다



# 리스트 내포와 한 줄 if
numbers = [1, 2, 3, 4, 5]
result1 = [num * 2 if num % 2 == 0 else num for num in numbers]

# map과 lambda
result2 = list(map(lambda x: x * 2 if x % 2 == 0 else x, numbers))

print(result1)  # [1, 4, 3, 8, 5]
print(result2)  # [1, 4, 3, 8, 5]



map() 함수와 같이 사용

 

numbers = [1, 2, 3, 4, 5]

# 각 숫자의 제곱 계산
squares = list(map(lambda x: x**2, numbers))

print(squares)  # [1, 4, 9, 16, 25]




여러 리스트 동시 처리

 

list1 = [1, 2, 3]
list2 = [10, 20, 30]

sums = list(map(lambda x, y: x + y, list1, list2))

print(sums)  # [11, 22, 33]




filter() 함수와 같이 사용

 

numbers = range(-5, 6)

# 양수만 필터링
positive_nums = list(filter(lambda x: x > 0, numbers))
print(positive_nums)  # [1, 2, 3, 4, 5]

# 짝수만 필터링
even_nums = list(filter(lambda x: x % 2 == 0, numbers))
print(even_nums)  # [-4, -2, 0, 2, 4]




sorted() 함수와 같이 사용

 

students = [
    {'name': '김철수', 'age': 20, 'score': 85},
    {'name': '이영희', 'age': 19, 'score': 92},
    {'name': '박민수', 'age': 22, 'score': 78}
]

# 나이순 정렬
age_sorted = sorted(students, key=lambda x: x['age'])
print("나이순:", age_sorted)

# 점수순 정렬
score_sorted = sorted(students, key=lambda x: x['score'], reverse=True)
print("점수 내림차순:", score_sorted)

# 복합 조건 정렬 (나이와 점수로 정렬)
complex_sorted = sorted(students, key=lambda x: (x['age'], -x['score']))
print("나이순, 같은 나이는 점수 내림차순:", complex_sorted)




리스트에서 사용

 

리스트 정렬 - 문자열 길이 기준

 

words = ['python', 'java', 'javascript', 'c++', 'ruby']

sorted_words = sorted(words, key=lambda x: len(x))

print(sorted_words)  # 출력: ['c++', 'java', 'ruby', 'python', 'javascript']






max 함수와 사용

 

products = [
    ('노트북', 1200000),
    ('마우스', 30000),
    ('키보드', 150000)
]

most_expensive = max(products, key=lambda x: x[1])

print(most_expensive)  # 출력: ('노트북', 1200000)






반응형