Python

Python - 람다 함수, 재귀 함수

구름이팡팡 2021. 7. 13. 23:25
728x90

<람다 함수> 

: 익명함수

- 리스트 내포, 조건부 표현식 등과 같이 여러 줄의 코드를 간결하게 표현할 수 있도록 도와주는 새로운 함수 정의 방법 • - lambda로 정의할 수 있고, def와 같은 역할

- 함수의 이름을 정의하지 않고, 일회성으로 간편하게 사용할 때 유용

- def로 정의할 만큼 복잡하지 않을 때 활용

• lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

- 람다 함수를 add라는 변수에 할당해 일반 함수처럼 사용

cf) 람다 함수는 전통적인 함수와 다른 성격을 지님 (마크로 : macro)

- 따로 변수에 할당하지 않고 바로 한 줄로 표현 가능

- def 함수와 같이 기본 매개변수, 키워드 매개변수, 가변 매개변수 설정 가능

 

<람다 함수 활용>

- 조건문과 함께 한 줄로 사용 가능

ex) print((lambda a,b : a if a%2==0 else b)(1,3))

- map 내장 함수와 함께 활용: 시퀀스 자료형이 지닌 각 요소 값들에 대해 함수에 적용한 요소를 지닌 map 객체를 반환

- filter 내장 함수와 함께 활용: 시퀀스 자료형이 지닌 각 요소의 값에 대해 함수에 적용한 결과가 참인 원소값만을 지닌 filter 객체를 반환

- 복잡한 객체를 정렬할 때 활용

- 문자열 포맷팅과 함께 활용

 

<재귀 함수>

- 재귀 함수는 자기 자신을 호출하는 함수로 파이썬은 자기 자신을 함수 내에서 호출할 수 있기 때문에 재귀 함수로 활용할 수 있음

- 파이썬은 끝없이 자기 자신을 호출해 무한루프에 빠지는 것을 방지하기 위해 일정기간 반복하여 자기 자신을 호출할 경우 오류 발생 

- 종료 조건이 필요함

 

 

728x90