매개변수: 함수에 입력된 전달된 값을 받는 변수
인수: 함수 호출할 때 전달하는 입력값
일반함수:
def add_two(x):
return x + 2
add_two(5)
7
람다로 만든 함수:
(lambda x : x + 2)(5)
7
y = ' 나폴리 '
(lambda x : x + y)('이탈리아')
'이탈리아 나폴리'
#인수를 x만 받기 때문에 '이탈리아'가 x에 할당됨
리스트나 튜플에 특별한 처리시 사용하는 함수
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() + 일반함수
(홀수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(일반함수, 이터러블 객체)
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]