[Python] lambda

2021. 3. 27. 02:29 Python/Python 프로그래밍

 

 

lambda는 익명 함수로 함수를 간단하게 정의하는 데 쓰입니다. C++에서의 labmda 함수는 상당히 복잡한 구문을 가졌는 데 반해 Python에서는 다음과 같은 형식으로 작성하면 됩니다.

lambda 인자 : 표현식

C++에 (http://engkimbs.tistory.com/62) 비교하면 너무나도 간단한 식이죠! 이게 바로 Python의 매력이 아닌가 싶습니다.

 

이러한 차이는 C++과 Python이 지향하는 바가 달라서 그렇습니다만 일단 'Python이 정말 간단하구나!'라고 생각하고 넘어가죠.

 

아래의 예는 람다 함수의 예제입니다.

print( (lambda x,y: x+y)(10,20) )

 

결과

30

 

map과 함께 써서 원하는 값들이 들어 있는 리스트를 뽑아내는 데도 사용됩니다. 여기서 map은 어떤 값의 목록(리스트)을 받아들여 그에 맞는 결과물을 출력하는 함수입니다. 밑에서는 0~9까지의 값을 받아 들여 각각의 값의 제곱수의 리스트를 출력하는  코드입니다.

ret = list(map(lambda x : pow(x,2), range(10)))
print(ret)

 

결과

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

만일 lambda 함수를 작성했는 데 이번 라인만이 아닌, 다음에도 사용하고 싶으면 어떤 변수에 assign하면 됩니다.

la = lambda x : x + 2
print(la(3))

 

결과

5

 

P.S

 

요즘 프로젝트 하면서 새삼스럽게 파이썬의 매력에 푹 빠지는 중입니다.

 

다음과 같은 C++스타일의 코드를 파이썬으로 단 한 줄로 해결 가능합니다.

while True:
	if i == len(kospi):
		break
	update.append(kospi[i])
	i += 1

바로 이런 식으로요! 

map(lambda data : update.append(data), kospi[i:])

참으로 간편하지 않습니까?

출처: https://engkimbs.tistory.com/68?category=688857 [새로비]