Algorithm

[파이썬] 람다(lambda) 쓰는 법 - Python 문법

seu11ee 2020. 10. 11. 23:59

안녕하세요!! 스리입니다.

 

정말 오랜만에 올리는 포스팅이네요ㅠㅠ 반성해야겠어요,,

 

하지만 이제 최소 1 주 1 포스팅을 하기로 했으니 주에 한 번은 꼭 올릴 것입니다ㅋ-ㅋ

 

이번 포스팅은 파이썬에서 람다 표현식 쓰는 방법을 소개해드릴거예요!!

 

람다 표현식이란?

람다 표현식은 익명함수를 만들 때 쓰이는데요, def func(): ~ 이런 함수가 아니고 이름없이 그 때 그 때 내가 정의한 일을 하도록 할 수 있습니다.

람다는 아래와 같은 식으로 쓰는데요!

lambda [parameter_list] : expression

예를 들자면, 이렇게 사용할 수 있어요.

lambda (x,y) : (x+y)(100, 500) #내가 만든 lambda 함수의 parameter에 100,500을 넣겠다!
#결과 600

이걸 출력하게 되면 <function <lambda> at 0x1090d9140>이런식으로 뜨기 때문에 보통 lambda함수로 만든 값을 활용할 수 있는 형태로 쓰게 됩니다.

 

대표적인게 map이에요.

list(map(lambda x: x*5, range(3))) #map(함수,리스트)에서 함수에 람다 표현식을, 리스트에 range(3)을 넣어줍니당
#이 리스트를 출력하면 [0, 5, 10]

sort의 Key로 활용되는 lambda

target = [[1,2],[2,1],[3,6],[3,5],[3,3]]

#2번째 인덱스로 비교를 하고 싶다면 x[0] 대신 x[1] 입력

target.sort(key = lambda x:x[0])

#1번째 인덱스로 정렬후 값이 같을 때 2번째 인덱스로 내림차순 정렬하고 싶다면 이렇게
target.sort(key = lambda x:x[0],-x[1])

sort의 key에 람다를 이용하면 여러 조건을 주는 sort를 할 수 있어서 정말 편해요 ㅎ-ㅎ

 

 

알고리즘을 풀면서 모법답안을 볼 때면 항상 있던 그 람다,, 코드 길이를 확 줄여주는 람다,,

 

저도 어떻게 쓰는 지 항상 궁금했는데 미루다가 나중에나 알게 되었어요.

 

이번 포스팅은 여기까지 하겠습니다

ㅎㅎ