Today I Learn (TIL)
#20 Python - lambda
이웃집 친구
2020. 6. 29. 17:54
반응형
이해하기 쉬운 예제:
Lambdas = [
lambda x : x ** 2,
lambda x : x ** 3,
lambda x : x ** 4
]
for lambda_func in Lambdas:
print( lambda_func(2) )
import types
f = lambda x,y,z : x+y+z
print(f)
print(type(f))
print( type(f) == types.LambdaType)
type은 lambda로 나오지만 이외에 class타입도 함께 돼있는 것을 확인할 수 있다.
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 password: 'SHORT_PASSWORD' if len(password) < 8 else None,
lambda password: 'NO_CAPITAL_LETTER_PASSWORD' if not any(c.isupper() for c in password) 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('123456789fF') ) # True
출력 값:
SHORT_PASSWORD
NO_CAPITAL_LETTER_PASSWORD
True