반응형

 

 

 

 

 

Lambda는 함수를 다르게 쓴 것이라고 보면 된다.

f = lambda x, y: x + y
print(f(1,2))

f = lambda x: x ** 2
print(f(3))

f = lambda x: x / 2
print(f(4))

 

 

꼭 함수의 이름을 지정하지 않고도 사용할 수 있다.

print((lambda x: x+1)(5))

 

 

 

lambda에 필터 껴주기 

=> lambda에서 if 문 쓸 때에는 꼭 else도 써 주어야 한다.

# lambda에 필터 껴주기
a = list(map(lambda x: x ** 2 if x % 2 == 0 else x, ex))
print(a)
[1, 4, 3, 16, 5]

 

 

 

python 3에서는 list comprehension으로 편하게 쓸 수 있기 때문에 lambda의 사용이 권장되지 않는다.

b = [x ** 2 for x in ex]
print(b)
[1, 4, 9, 16, 25]

 

 

Reduce 

: 값을 하나하나 꺼내면서 수식 처리를 해 주는 것이다.

 

예시 ) 값을 하나하나 꺼내면서 더해준다.

# Reduce
from functools import reduce
print(reduce(lambda x,y: x+y, [1,2,3,4,5]))
15

 

 

 

예시 ) 값을 하나하나 꺼내면서 곱해준다.

def factorial(n):
    print(reduce(lambda x,y: x*y, range(1,n+1)))

factorial(4)
24

 

 

 

 

 

 

 

 

 

반응형

'AI > python' 카테고리의 다른 글

Pythonic Code - Deque, Ordered Dict, Counter  (0) 2021.01.12
Pythonic Code - asterisk  (0) 2021.01.12
Pythonic Code - Enumerate, Zip  (0) 2021.01.10
Pythonic Code - List Comprehension  (0) 2021.01.10
파이썬 기초 끝 ! + map 함수  (0) 2021.01.10

+ Recent posts