lambda 매개변수 : 반환값에 대한 식
(람다 표현식)1) add 함수
>> 함수로 표현
def add (a,b):
return a+b
>> 람다로 표현
lambda x, y: x+y
2) map() :콜백함수와 list을 이용해 새로운 list를 만드는 함수 (정확히는 객체)
L =[1,2,3,4,5]
lam = lambda = x : x*x
m = map(lam,L)
print(list(m))
>출력 결과
[1,3,9,16,25]
3) filter() : 특정 조건에 맞는 요소들만 뽑아서 리스트로 만드는 함수 (정확히는 객체)
L = [1,2,3,4,5]
lam = lambda x : x % 2 ==0
F = filter(lam, L)
print(list(F))
>출력 결과
[2, 4]
lambda 매개변수 : 반환식 if 조건 else 반환식
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
-lambda로만 이루어진 list을 통해 여러 조건을 연속적으로 확인 할 예정
-lambda1: 매개변수의 길이가 8보다 작으면 SHORT_PASSWORD' 반환, 8하고 같거나 크면 None 반환
-lambda2: 매개변수에 하나도 대문자가 없으면 'NO_CAPITAL_LETTER'을 반환 하나라도 있으면 None 반환
def check_password_using_lambda(password):
for f in lambdas:
if f(password) is not None:
return f(password)
return True
-for 문을 통해 f에 lambda1과 lambda2가 차례로 들어감.
-lambda의 반환값이 None이 아닐 경우 None이 아닌 반환값 return
-lambda1 과 lambda2 모두 반환값이 None일 경우 True return
print( check_password_using_lambda('123') )
print( check_password_using_lambda('12356789f') )
print( check_password_using_lambda('123456789fF') )
> 출력 결과
SHORT_PASSWORD
NO_CAPITAL_LETTER_PASSWORD
True
import types
f = lambda x,y,z : x+y+z
print(f)
print(type(f))
print( type(f) == types.LambdaType)
>출력 결과
<function <lambda> at 0x10132e4c0>
<class 'function'>
True