728x90
Lambda 함수란
˙ 코드를 간결하게 만들기 위해 사용
˙ 단일문으로 표현되는 익명함수
˙ 익명함수란 이름이 없는 구현체만 존재하는 간단한 함수를 의미
˙ 코드상에서 한번만 사용되는 기능이 있을 때, 굳이 함수로 만들지 않고 1회성으로 만들어 쓸 때 사용
예제 1.
#x를 넣으면 x제곱이 나오는 함수를 만들어보자
a=lambda x:x**2
a(5)
#위의 lambda함수와 같은 함수
def a2(x):
return x**2
예제 2.
#x,y 두 변수를 덧셈하는 함수
add = lambda x,y:x+y
add(1,2)
#위의 lambda 함수와 같은 함수
def add(x,y):
return x+y
예제 3.
#문자 길이로 sorting 하기
ex = ['aaa','bbbbbbb','c','dddd']
string.sort(key=lambda s:len(s))
#위 lambda함수와 같은 함수
def str_len(s):
return len(s)
Lambda와 유용하게 사용되는 3가지 함수(filter,map,reduce)
˙ filter : 특정 조건을 만족하는 요소만 남기고 필터링
˙ map : 각 원소를 주어진 수식에 따라 변형하여 새로운 리스트를 반환
˙ reduce : 차례대로 앞 2개의 원소를 가지고 연산. 연산의 결과가 또 다음 연산의 입력으로 진행됨. 따라서 마지막까지 진행되면 최종 출력은 한개의 값만 남기게 됨
예제1. filter 함수
nums = [1,2,5,6,8,9,0,1,3]
#짝수만 남기고 싶을 때
list(filter(lambda n:n%2==0,nums))
#위 lambda 함수와 같은 함수
def even(n):
return n%2==0
예제2. map 함수
nums = [1,2,5,6,8,9,0,1,3]
#map함수 = 기존 리스트 + 새로운 리스트
list(map(lambda n:n**2, nums))
예제3. reduce 함수
import functools
a = [1,3,5,8]
# 리스트 내의 모든 숫자의 합
functools.reduce(lambda x,y:x+y,a)
반응형
'나는야 데이터사이언티스트 > PYTHON' 카테고리의 다른 글
[Python]DataFrame value type 확인하기 (0) | 2021.07.21 |
---|---|
[Python]네이버 쇼핑 리뷰 크롤링 하기 (9) | 2021.06.16 |
[Python]Jupyter Notebook Markdown 잘 사용하기 (0) | 2021.03.18 |
[PYTHON] 이미지 불러오기 (0) | 2021.01.07 |
[Python]파이썬에서 Oracle DB 연동하는 방법 (0) | 2020.10.27 |