반응형
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 |