TIL 26 | Lambda
Lambda
메소드를 하나의 표현식으로 나타낸 것
-
함수형 프로그래밍이 각광받고 있는 요즘 여러 클래스를 나눌 필요없이 하나의 함수안에 람다표현식으로 간결하게 나타낼 수 있다
-
불필요한 Loop문을 줄일 수 있다
-
표현식만으로 return값을 되돌려준다
정렬
def check_password(password):
if len(password) < 8:
return 'SHORT_PASSWORD'
if not any(c.isupper() for c in password):
return 'NO_CAPITAL_LETTER_PASSWORD'
return True
# Lambda형 변환
lambdas = [
lambda x : 'SHORT_PASSWORD' if len(x) < 8 else None,
lambda x : 'NO_CAPITAL_LETTER_PASSWORD' if not any(c.isupper() for c in x) else None
]
def check_password_using_lambda(password):
for f in lambdas:
if f(password) is not None:
return f(password)
return True
print( check_password_using_lambda('123') )
# SHORT_PASSWORD
print( check_password_using_lambda('12356789f') )
# NO_CAPITAL_LETTER_PASSWORD
print( check_password_using_lambda('123456789F') )
# True
any()
전달받은 자료형의 element 중 하나라도 True일 경우 True를 돌려준다.
(만약 empty 값을 argument로 넘겨주었다면 False를 돌려준다.)
map
list(map(lambda x: x , list )
각 리스트 요소들을 x의 상태값으로 바꾸어 새로운 객체를 리턴한다'
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key = lambda x: x*3, reverse=True)
return str(int("".join(numbers)))
filter
filter 조건의 boolean 값이 True 참인 요소만 반환한다
numberList = [1, 2, 3, 4, 5]
result = list(filter(lambda x : int == type(x), numberList))
# [1, 2, 3, 4, 5]
Reduce
functools에 있는 모듈로 앞에서부터 차례대로 계산을 해준다
from functools import reduce
list = [ 1, 2, 3, 4, 5]
def addList(list):
return reduce(lambda x, y : x + y, list)
# 15
Author And Source
이 문제에 관하여(TIL 26 | Lambda), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@action2thefuture/TIL-26-Lambda저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)