람다 함수
정의
- lambda
- 이름이 없는 익명 함수 (anonymous function)
- 함수를 따로 정의하지 않고 사용시에 정의해 즉시 사용할 수 있는 익명 함수
문법적 특징
- 단 하나의 표현식만 허용한다. 즉, 일반 함수처럼 내부에 여러 줄(표현식)을 사용할 수 없다.
- 표현식의 결과는 자동으로 함수의 반환값이 된다. (return 필요 없음)
장점
- 간결함 : 한 줄의 표현식으로 작성할 수 있음
- 불필요한 이름 방지 : 일회성 사용
- 고차함수와 결합해 사용할 때 유용(??)
- 함수형 프로그래밍 스타일 지원
기본 문법
활용 예시
1
2
3
4
| def add(x):
return x + 2
print(add(3)
>> 5
|
1
2
| print((lambda x:x+2)(3))
>> 5
|
1
2
3
| add_lambda = lambda x: x + 2
print(add_lambda(3))
>> 5
|
확장 예제
1
2
| print((lambda x,y: x + y)(2, 3))
>> 5
|
활용 예시
1
2
3
4
| employees = {"이지혜": 3000000, "구민준": 5000000, "방서연": 4100000}
updated_salaries = {name: (lambda salary:int(salary*1.1))(salary) for name, salary in employees.items()}
print(updated_salaries)
>> {'이지혜': 3300000, '구민준': 5500000, '방서연': 4510000}
|
Reference
방송통신대 - 오픈소스기반 데이터분석 (정재화)
Comments