포시코딩

lambda, map() 본문

Python

lambda, map()

포시 2022. 12. 25. 21:45
728x90

람다(lambda)

Javascript에서의 익명함수와 비슷하다.

lambda 표현식 : 매개변수

사용방법

def test(x, y):
    return x + y

result = test(3, 4)
print(result)

test() 라는 함수를 위와 같이 만들어 쓴다고 했을 때 lambda를 사용하면 다음처럼 사용할 수 있다.

result = (lambda x, y : x + y)(3, 4)
print(result)

 

map()

다음은 map()에 대해 알아볼건데 코딩테스트 풀이방법으로도 lambda와 같이 한 세트로 자주 쓰이기 때문에

lambda를 배우며 같이 알아두면 좋다.

map(함수, 리스트)

함수와 리스트를 인자로 받은 후, 리스트에서 원소를 하나씩 꺼내 함수를 적용시킨 다음, 그 결과를 새로운 리스트에 담아 리턴한다.

 

여기서 함수를 만들어져 있는걸 써도 되지만 lambda 함수를 쓰면 새로 만들지 않아도 된다는 장점이 있다.

사용방법

result = map(lambda x : x * 2, range(1, 5))
print(result)  # <map object>

range(1, 5)를 통해 [1, 2, 3, 4]에 대해 각각 * 2를 한 값을 리턴하는데

이러면 map object로만 리턴하기 때문에 list()로 감싸줘야 한다.

result = list(map(lambda x : x * 2, range(1, 5)))
print(result)  # [2, 4, 6, 8]

 

정리

예시로 map() 함수와 같이 쓰는 법에 대해 알아봤는데

map() 뿐만 아니라 reduce(), filter() 등 같이 사용하기에 따라 활용 방법은 무궁무진하다.

 

이걸 왜 이제서야 알아봤을까라는 생각이 들 정도로 앞으로 유용하게 사용할 수 있을 것 같다.

 

 

 

 

도움받은 곳

https://wikidocs.net/64

 

3.5 람다(lambda)

오늘은 람다 형식과 그것을 이용하는 여러 가지 함수들에 대해서 알아보겠습니다. 당장 완벽하게 소화하실 필요는 없을 것 같구요, 가벼운 마음으로 이런 것이 있다는 정도만 아셔도 되…

wikidocs.net

728x90

'Python' 카테고리의 다른 글

[Python] max에 조건 달기  (0) 2023.04.23
집합 자료형 set  (0) 2022.12.27
enumerate(list)와 range(len(list)) 비교  (0) 2022.12.25
zip() 함수로 데이터 엮기  (0) 2022.12.20
공백을 메꿔주는 str.rjust, str.ljust, str.zfill  (0) 2022.12.20