[Python] 람다(lambda)

PurinYun·2023년 11월 9일
0

AIffel

목록 보기
3/75

람다

매개변수: 함수에 입력된 전달된 값을 받는 변수
인수: 함수 호출할 때 전달하는 입력값

일반함수:

def add_two(x):
	return x + 2
    
add_two(5)

7

람다로 만든 함수:

(lambda x : x + 2)(5)

7

람다 외부 변수 사용

y = ' 나폴리 '
(lambda x : x + y)('이탈리아')

'이탈리아 나폴리'

#인수를 x만 받기 때문에 '이탈리아'가 x에 할당됨

람다 표현식을 인수로 사용하는 경우

map(함수, 리스트 or 튜플)

리스트나 튜플에 특별한 처리시 사용하는 함수

def second(X):
	result = x * 2
    return results
    
two = [ i for i in range(10)]
    
list(map(second, two))

[0, 2, 4 ... 16, 18]

tuple(map(second, two))

(0, 2, 4 ... 16, 18)

map()는 꼭 리스트or튜플로 감싸주어야 한다!

two = [i for i in range(10)]

map(lamda x : x * 2, two)

list(map(lambda x : x * 2, two))

[0, 2, 4 ... 16, 18]

filter(함수, 리스트)

리스트의 원소들을 함수에 적용시켜서 참이 결과값들로 새 리스트 만듦

filter() + 일반함수

(홀수odd만 남기기)

def odd(X):
	if x % 2 == 1:
    	return x
        
two = [ i for i in range(10)]

list(filter(odd, two))	

[1, 3, 5, 7, 9]

filter() + 람다 함수

list(filter(lambda x : x % 2 == 1, two))
#or list(filter(lambda x : x % 2, two))
#파이썬은 다른 조건이 없으면 참일 때만 통과시키므로 더 간결식 가능

[1, 3, 5, 7, 9]

reduce(함수, 이터러블 객체)

각 요소를 지정함수로 처리 후, 이전 결과에 누적하여 반환하는 함수

reduce(일반함수, 이터러블 객체)

from functools import reduce

def f(x, y):
	return x * y
    
a = [1, 2, 3, 4, 5]

reduce(f, a)
    

120

reduce(람다함수, 이터러블 객체)

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

reduce(lambda x, y : x * y, a)

120

람다 표현식과 리스트 컴프리헨션을 이용한 제곱결과 리스트 출력

three = [i for i in range(1, 11)]
map(lambda x : x**2, three)
list(map(lambda x : x**2, three))

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

profile
Fantivation

0개의 댓글