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) |
반응형