• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - Lambda (람다함수) - 작은 1회용 익명함수

791  

목차

  1. Lambda 함수 정의
  2. Lambda 함수 구문
  3. Lambda 함수 사용 이유

 

Lambda 함수 정의


1. Lambda 함수는 작은 1회용 익명 함수

2. 여러 독립변수 가능하나, 표현식은 오직 1개만 가능.

 

PS. 주의: 알파벳 L 로 시작하며, 중간에 묵음 b 있음. 

 

Lambda 함수 구문


lambda arg1, arg2, ... : expression

 


[코드 설명]

 

arg1, arg2, ....

매개변수. (※ 여러 개 가능.)

주의: 독립변수를 소괄호로 안 감쌈.

 

expression

전달받은 독립변수 이용한 표현식.

주의: 값 반환에 return 사용 안 함.

 


[반환값]

 

독립변수 받아 표현식 실행 후 결과 반환.

 


[예제]

 

# 독립변수 1개인 경우.

x = lambda a: a + 4

print(x(3)) # 7


# 독립변수 2개인 경우.

x = lambda a, b: a * b

print(x(3, 4)) # 12

 

# 독립변수 3개인 경우.

x = lambda a, b, c: a + b + c

print(x(1, 2, 3)) # 6

 

 

Lambda 함수 사용 이유

1. 람다 함수는 일반함수 안에서 익명함수로 사용할 때 유용. ★

 

1.

하나의 매개변수 취하는 일반함수 있고, 

해당 매개변수에 미지의 수가 곱해진다고 가정.

(예)

def hz(n):

  return lambda a : a * n

 

2.

독립변수의 2배 함수

def hz(n):

  return lambda a : a * n

b = hz(2)

print(b(10))  # 20

 

3.

독립변수의 3배 함수

def hz(n):

  return lambda a : a * n

c = hz(3)

print(c(10))

 

4.

독립변수 2배와 3배 함수 동시.

def hz(n):

  return lambda a : a * n

b = hz(2)

c = hz(3)

print(b(10)) # 20

print(c(10)) # 30

 

 


2. 짧은 시간 동안 익명함수 필요 시, 람다 함수 사용. ★

 

(예) a의 b승 구하기

print((lambda a, b: a**b) (2, 4)) # 16

 


3. List에 넣어 사용 가능.

 

방법1.

hz = [lambda x : x*10, lambda x : x*100]

print(hz[0](10)) # 100

print(hz[1](10)) # 1000

 

방법2.

a = lambda x : x*10

b = lambda x : x*100

hz = [a, b]

print(hz[0](10)) # 100

print(hz[1](10)) # 1000

 



분류 제목
basic Python - Lambda (람다함수) - 작은 1회용 익명함수
basic Python - Array (배열)
basic Python - Class/Object (클래스/객체) ※ __init__() 함수
basic Python - Inheritance (상속)
basic Python - Iterator (반복자)
basic Python - Scope (범위)
basic Python - Module (모듈)
basic Python - Datetime (날짜시간) 표시
basic Python - JSON (제이슨)
basic Python - RegEx (정규식) - 정규표현식
basic Python - PIP (피프) - 패키지(모듈) 관리자
basic Python - Try...Except - 에러 테스트/제어. (= 트라이...익세프트)
basic Python - User Input (사용자 입력)
basic Python - String Format (문자열 포맷)
basic Python - Math (수학)
2/2
목록
찾아주셔서 감사합니다. Since 2012