본문으로 바로가기

1. lambda

익명함수 (이름이 없는 함수)

코드의 간결함 + 메모리의 절약 가능

 

1-1. 일반적인 리터럴 표기법에 따른 함수 생성 방법

def 함수이름(매개변수):
	retrun 결과

1-2. lambda를 사용하여 표현한 방법

lambda 매개변수 : 결과

 

1-3. 적용 예시

 

이러한 함수 표현을

def sum(a, b):
    return a+b
    
sum(10,20) # 30

아래와 같이 한줄에 표현할 수 있다.

(lambda a, b: a+b)(10,20) # 30

 

2. map()

리스트로 부터 원소를 하나씩 꺼내서 함수를 적용시키고 새로운 리스트에 담아준다.

# 사용법
map(함수, 리스트)

# --------------------------------------
list(map(lambda x: x ** 2, range(5)))
#[0, 1, 4, 9, 16]

 

 

3. reduce()

iterable(문자열, 리스트, 튜플)의 원소들을 함수에 누적 적용시켜준다.

# 사용법
reduce(함수, iterable)

# -------------------------------------
from functools import reduce # 파이썬 3부터는 import 해줘야 함

reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])
# 10
# ((((0 + 1) + 2) + 3) + 4) 가장 안쪽 괄호부터 계산되는 형태로 생각. 누적 합.

reduce(lambda x, y: y + x, 'abcde')
# edcba
# ba -> cba -> dcba -> edcba 순서

 

4. filter()

리스트의 원소들에 함수를 적용시켜서 결과가 참인 값들로 새로운 리스트를 만들어 준다.

# 사용법
filter(함수, 리스트)

list(filter(lambda x: x < 5, range(10)))
# [0, 1, 2, 3, 4]