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