안녕하세요!! 스리입니다.
정말 오랜만에 올리는 포스팅이네요ㅠㅠ 반성해야겠어요,,
하지만 이제 최소 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를 할 수 있어서 정말 편해요 ㅎ-ㅎ
알고리즘을 풀면서 모법답안을 볼 때면 항상 있던 그 람다,, 코드 길이를 확 줄여주는 람다,,
저도 어떻게 쓰는 지 항상 궁금했는데 미루다가 나중에나 알게 되었어요.
이번 포스팅은 여기까지 하겠습니다
ㅎㅎ
'Algorithm' 카테고리의 다른 글
[파이썬] itertools 라이브러리 사용법 (순열, 조합)(permutations, combinations) - Python 문법 (0) | 2020.10.18 |
---|