본문 바로가기
Be Smart/Python

Python 람다 함수

by 반월하 2021. 8. 5.
728x90

파이썬 람다식을 활용하면 데이터를 다루는 부분에 있어서는 타 언어와 다르게 매우 쉽고 직관적인 코드로 다양한 형식을 변형이나 가공할 수 있게 된다.

 

파이썬의 Lambda함수

 

파이썬의 람다 함수는 람다식, 람다 표현식, 익명 함수 등으로 알려져 있고 실제로 이름이 없이 정의되어 프로그래밍에 사용되는 함수를 말합니다.

파이썬의 람다 표현식은 쓰고 버리는 일시적인 함수이며, 함수가 생성된 내부에서만 사용이 됩니다. 간단한 기능을 일반적인 함수와 같이 정의하여 쓰는 것이 아니며 필요한 곳에서만 사용하고 버릴 수 있는 함수입니다.

람다 표현식은 익명의 함수이기 때문에 메모리를 절약하는 이점이 있는 함수입니다.

 

파이썬의 lambda 함수 표현식

 

- 프로그램이 lambda 함수에 조건부 사용하기

조건부 표현식에서는 if, else를 사용할 때는 : 를 사용하지 않습니다. 특히 람다 표현식에서는 if문을 사용했다면 반드시 else를 사용해야 하며 if 만 사용하게 된다면 문법 에러가 발생하므로 유의해야 합니다. 

a = [1,2,3,4,5,6,7,8]
list(map(lambda x : str(x) if x == 1 else float(x) in x == 2 else x + 10, a))

==> ['1', 2.0, 13, 14, 15, 16, 17, 18]

- filter() 함수

 

파이썬 리스트의 원소 필터링하여 반환하는 filter() 함수입니다. filter()는 반복 가능한 객체에서 특정 조건에 맞는 요소만 가져오며, filter에 지정한 함수의 반환 값이 True 일 때만 해당 요소를 가져오게 됩니다.

변수 = filter(함수, 리스트)

soo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
list(filter(lambda x: x % 3 == 0 , soo) )
==> [18, 9, 24, 12, 27]

- map()  함수

파이썬 리스트 여러 개의 각 원소에 람다 함수를 적용할 경우에 사용되는 map() 함수 입니다. map() 은 반복 가능한 객체를 여러 개 넣을 수 있습니다.

변수 = map(함수, 리스트)

a = [1,2,3,4,5]
b = [2,4,6,8,10]
list(map(lambda x, y:x*y, a,b))
==> [2, 8, 18, 32, 50]

 

- reduce() 함수

파이썬 리스트의 원소에 누적으로 함수를 적용하는 reduce() 함수 입니다.

reduce(함수, 순서형 자료)

from fuctools import reduce
reduce(lambda x,y: x+y, [1,2,3,4,5])
==> 15
728x90

댓글