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]
'Python > 파이썬을 파이썬답게' 카테고리의 다른 글
[Python] divmod, unpacking (0) | 2021.04.28 |
---|---|
[프로그래머스강의] 파이썬을 파이썬답게 수강 시작 (0) | 2021.04.26 |