[Python] 파이썬 lambda 란?

resilient

·

2021. 9. 1. 22:14

728x90
반응형

이번 시간에는 파이썬 알고리즘을 풀 때, 그중에서도 정렬 문제를 풀 때 많이 보게 되는 lambda에 대해서 간단하게 정리해보려고 한다.

 

lambda 란?

lambda는 그리그 문자 중 11번째 글자이고, AWS서비스 이름으로도 사용되고 많은 프로그램에서도 사용되고 있다.

파이썬에서의 lambda는 런타임에 생성해서 사용할 수 있는 '익명 함수' 이다.

함수형 프로그래밍 언어에서의 lambda와 같은 건 아니지만 map(), filter(), sort() 등에서 많이 사용되는 기능이다.

lambda는 쓰고 버리는 일시적인 함수이다. 즉, 간단한 기능을 일반적인 함수와 같이 정의해두고 쓰는 것이 아니고 필요한 곳에서 즉시 사용하고 버릴 수 있기 때문에 코드가 간결해지고 메모리가 절약된다.

 

lambda 사용법

 

lambda는 아래와 같이 사용한다.

lambda 인자리스트: 표현식

 

간단한 예시를 살펴보자.

function = lambda x : x + 1

function(4)
# 5

위와 같이 코드를 사용해서 임의의 함수를 만들어서 사용할 수 있다.

 

다음으로는 lambda와 함께 쓰이는 함수들을 알아보고 lambda함수가 어떻게 쓰이는지 알아보자.

 

  • map() 함수

람다 함수의 장점은 map() 함수와 함께 사용될 때 진가를 발휘한다. map() 은 쉽게 말하면 짝을 이어주는 함수이다.

 

function = map(function, iterable,...)

 

첫 번째 인자 function는 함수의 이름이다. 두 번째 인자 iterable은 한 번에 하나의 멤버를 반환할 수 있는 객체이다.

(list, str, tuple)

map() 함수는 function을 iterable의 모든 요소에 대해 적용하고 function에 의해 변경된  iterator를 반환한다.

 

아래 예시를 보자.

a = [1,2,3,4]

b = [17,12,11,10]

list(map(lambda x, y:x+y, a,b))

#[18, 14, 14, 14]

 

  • filter() 함수

filter() 함수도 두 개의 인자를 가진다.

 

function = filter(function, iterable)

 

filter에 인자로 사용되는 function은 처리되는 각각의 요소에 대해 Boolean 값을 반환한다.

True를 반환하면 그 요소는 남게 되고, False를 반환하면 그 요소는 제거된다.

 

아래 예시를 보자.

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]

list( filter(lambda x: x % 3 == 0, foo) )

# [18, 9, 24, 12, 27]

 

  • sort() 함수

sort()와 sorted() 모두 정렬 함수이다.

 

문자열, 리스트, 튜플, 딕셔너리, 집합 구조에서 모두 사용 가능하고 정렬 기준이 되는 key값을 정하고
lambda와 함께 사용하면 된다.

 

아래 예시를 보자.

('schedule 리스트를 원소들 중 0번째 인덱스를 key로 정렬하겠다'라는 의미이다.)

schedule = sorted(schedule,key=lambda x : x[0])

 

 

반응형

'Language > Python' 카테고리의 다른 글

[Python] join함수 란?  (0) 2021.07.04
[Python] 파이썬 eval함수 란?  (0) 2021.07.03
[Python] list comprehension이란?  (0) 2021.07.01
[Python]파이썬 정리노트(계속 업데이트)  (0) 2021.05.28