[파이썬] 파이썬 람다란?

Yohan_05·2023년 4월 28일
0

python

목록 보기
1/4

오늘의 주제는?

오늘 글을 작성할 주제는 바로 파이썬 람다이다. 코딩테스트를 연습하며 준비하던 중 람다를 이용하여 return 한 줄로 문제를 푸시는 대단한 능력자들을 보고 다시 문법을 확실히 익혀야겠다 라는 생각으로 람다를 다시 한번 정리하게됐다.

람다란?

Python lambda란 쉽게 말하면 함수를 딱 한줄로 만들어주는 친구이다. 예시를 들어보자 아래는 람다를 쓰지 않은 코드이다.

>>> def plus(x, y):
...    return x+y
...
>>> plus(20,30)
50

이번엔 람다를 써서 위와 똑같은 함수를 만들어보자.

>>> (lambda x,y: x+y)(20,30)
50

굉장히 짧고 간단하게 함수를 뚝딱해주는 것을 볼 수 있다. 이제 람다 함수를 사용하는 대표적인 함수들을 알아보자.

map()

map(함수, 리스트)
이 함수는 함수와 리스트를 인자로 받아 사용한다. 리스트로부터 원소를 하나씩 꺼내서 함수에 적용시킨 다음, 그 결과를 새로운 리스트에 담는다.

>>> list(map(lambda x: x ** 2, range(5)))
[0,1,4,9,16]

(lambda x : x ** 2, range(5) 는 x가 1씩 커지며 그 x의 제곱을 호출하는 람다 함수이다.)

reduce()

reduce(함수, 시퀀스)
시퀀스(문자열, 리스트, 튜플)의 원소들을 누적적으로 함수에 적용시킨다.

>>> from functools import reduce
>>> reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])
10

filter()

filter(함수, 리스트)
리스트에 들어있는 원소들을 함수에 적용시켜서 결과가 참인 값들로 새로운 리스트를 만들어준다. 아래의 코드는 x가 0~9 까지 증가할때 5보다 작은 숫자들을 새로운 리스트로 반환해준다.

>>> list(filter(lambda x: x < 5, range(10)))
[0, 1, 2, 3, 4]
profile
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.

0개의 댓글