[Python] - 람다 표현식 (Lambda Expression)
람다 표현식 (lambda expression)
- 람다 표현식은 함수의 기능을 런타임에 생성해서 사용할 수 있는 익명 함수입니다.
- 보통 함수는 def라는 키워드를 통해서 기능을 정의하고 여러 코드에서 해당 함수를 호출하여 사용할 수 있지만 람다 표현식은 한번 쓰고 버리는 일시적인 함수입니다.
- 람다 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다.
- 람다식은 아래와 같습니다. (✔ 보통 함수와의 차이)
# 보통 함수
def sum(x, y):
return x+y
#람다 함수
lambda x, y : x + y
하지만 위의 람다식은 따로 sum(1, 2)처럼 호출 할 수 없습니다. 익명 함수라는 이유가 여기서 나옵니다. 이름이 없기 때문에 호출할 수 없는 것입니다. 변수를 선언하면 호출이 가능해집니다.
# 변수를 선언하여 람다를 호출
sum = lambda x, y : x+y
sum(10, 20)
>>>30
# 변수 선언 없이 람다를 호출하는 방법
(lambda x, y : x+y) (10,20)
>>>30
- map함수와 함께 사용하는 방법(✔ 코드가 깔끔하게 보인다)
a = list(map(lambda a: a*2, [1, 2, 3, 4]))
print(a)
>>>[2, 4, 6, 8]
#기존 map과 함수 사용법
def double(n):
return n*2
a = map(double, [1, 2, 3, 4])
print(a)
>>>[2, 4, 6, 8]
- sort 함수에서 2차원 정렬하는법
# 좌표에서 y좌표 오름차순으로 정렬하는법
a = [[0,4], [1,2], [1,-1], [2,2], [3,3]]
a.sort(key = lambda x: [x[1], x[0]]) # 각 요소의 순서를 바꿔서 정렬한뒤 다시 원래대로
print(a)
>>> [[1, -1], [1, 2], [2, 2], [3, 3], [0, 4]]
'Python' 카테고리의 다른 글
딕셔너리 자료형(Dictionary) - Python (0) | 2022.01.29 |
---|