본문 바로가기
기타

TIL - 22.02.04

by DGK 2022. 2. 4.

 

개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

2월 4일(금)


lambda expressions

lambda란?

 

  1. 람다(lambda)는 인라인 함수를 정의할 때 사용하며, 익명함수 또는 람다 표현식이라고 부른다.
  2. 람다 표현식은 일반함수와 달리 함수의 이름이 없고, 인라인 형식의 간단한 표현만 올 수 있으며 return문 없이도 표현식의 결과가 반환된다는 것이다.
  3. 람다 표현식은 주로 간단한 함수 대신 사용되며, 인라인 표현식으로 작성되기 때문에 코드가 간결해지는 장점이 있다. (간단한 함수임에도 함수이름을 만들어야 하며, 다른 함수이름과의 충돌 가능성을 고려해야 하는 불편함을 해소할 수 있음)
  4. 람다 표현식은 nested(중첩) 될 수도 있고 복잡한 구조를 가질 수도 있지만, 가장 일반적인 형식은 아래와 같다.

(참고)

lambda argument1, argument2, ... , argumentN : expression using arguments

 

 

lambda expressions 활용 예시

예시(1)

# lambda expression 예시

f = lambda x,y,z : x+y+z
print(f(1,2,3))

# 출력 : 6


# 일반함수 예시(비교)

def add_func(x,y,z):
    return x+y+z
print(add_func(1,2,3))

# 출력 : 6

 

예시(2)

# lambda expression 예시

Lambdas = [
    lambda x : x ** 2,
    lambda x : x ** 3,
    lambda x : x ** 4
]

for lambda_func in Lambdas:
    print(lambda_func(2))
    
'''
출력 :
4
8
16

'''


# 일반함수 예시(비교)

def square(x): 
    return x ** 2

def power_3(x): 
    return x ** 3

def power_4(x):
    return x ** 4

powers = [square, power_3, power_4]

for f in powers:
    print(f(2))
    
'''
출력 :
4
8
16

'''

 

예시(3) : if-else문을 포함한 람다 표현식

# lambda expression 예시

lambdas = [
    lambda password : 'SHORT_PASSWORD' if len(password) < 8 else '',
    lambda password : 'NO_CAPITAL_LETTER_PASSWORD' if not any(c.isupper() for c in password) else ''
]

def check_password_using_lambda(password):
    
    for f in lambdas:
        if len(f(password)) > 0:
            return f(password)
    return True

print(check_password_using_lambda('123'))   
print(check_password_using_lambda('12356789f'))     
print(check_password_using_lambda('123456789F'))    

'''
출력 :
SHORT_PASSWORD
NO_CAPITAL_LETTER_PASSWORD
True

'''


# 일반함수 예시(비교)

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


print(check_password('123'))            
print(check_password('12356789f'))    
print(check_password('123456789F')) 

'''
출력 :
SHORT_PASSWORD
NO_CAPITAL_LETTER_PASSWORD
True

'''

 

 

'기타' 카테고리의 다른 글

TIL - 22.02.08  (0) 2022.02.08
TIL - 22.02.07  (0) 2022.02.07
TIL - 22.02.03  (0) 2022.02.03
TIL - 22.02.02  (0) 2022.02.02
TIL - 22.02.01  (0) 2022.02.02

댓글