파이썬/정리
람다함수(익명함수)
아몬드바
2023. 9. 10. 15:13
728x90
코딩테스트 문제에서 정렬할때 가끔 나오는? 람다함수에 대해서 알아보겠습니다.
보통의 파이썬에서는 함수를 정의할때 def ~ 로 시작합니다. 근데 이걸 가벼운 기능을 구현할때는 def 로 선언하고 정의를 하는게 수고롭다 보니 그런 것을 덜기 위해 만들어졌습니다.
람다(lambda) - 익명함수
익명함수라고 불리는 이유?
lambda x: x % 2 == 0
num = lambda x: x % 2 == 0
-> 위와 같은 코드처럼 단독으로 호출할수 없고 변수를 할당해야해서 익명 함수 라고 부릅니다. 즉, 이름이 없다.
사용하는 방법?
def print_num(x):
return x + 1
###################
lambda x: x + 1
# 우선순위대로 정렬
strA = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
# 양수일경우 오름차순, 음수일경우 내림차순
# sorted 함수의 경우 key에 strA의 인자를 넘겨준다.
result = sorted(strA, key = lambda x : (x[0], -x[1]))
# filter() 함수 사용
strAlist = [1, 2, 3, 4, 5]
strBList = list(filter(lambda x: x % 2 == 1, strAlist))
# result = 1, 3, 5
-> def 함수이름(매개변수):
return 결과
lambda 매개변수 : 결과
728x90