Lambda 표현식.. 으으으😬

Kay·2020년 5월 19일
1

AWS Lambda 아니고 Python의 Lambda 표현식이란?

lambda 인자 : 리턴 값 의 형태를 지니는 익명(이름이 없는) 함수.
함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다.

# 이렇게 이름지어서 만드랴, 다시 호출하랴 손이 많이 가는 함수를,

>>> def plus(x, y): 
	return x + y
    
>>>plus(2,3)
5
# 이렇게 한 줄로 줄여주는게 바로 Lambda 표현식!

>>> (lambda x, y : x + y)(2, 3)
5

Lambda 표현식의 활용

min, max 와의 활용

fruits = ['apple', 'banana', 'strawberry']

shortest = min(fruits, key= lambda n: len(n))
# shortest : 길이가 가장 짧은 이름

print(shortest)
# apple

참고한 블로그는 여기를 클릭

.sort(), sorted() 와의 활용

a = [(1, 2), (5, 1), (0, 1), (5, 2), (3, 0)]

인자 없이 sorted()만 쓰면, 리스트 아이템의 각 요소 순서대로 정렬된다.

b = sorted(a)
# b = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]

# key 인자에 함수를 넘겨주면 해당 함수의 반환값을 비교하여 순서대로 정렬한다.

c = sorted(a, key = lambda x : x[0])
# c = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]

d = sorted(a, key = lambda x : x[1])
# d = [(3, 0), (5, 1), (0, 1), (1, 2), (5, 2)]


# 비교할 아이템이 요소가 복수 개일 경우, 튜플로 그 순서를 내보내주면 된다.
# -를 붙이면, 현재와 반대차순으로 정렬된다.

e = sorted(a, key = lambda x : (x[0], -x[1]))
# e = [(0, 1), (1, 2), (3, 0), (5, 2), (5, 1)]

정리쓰

  • key의 인자로 비교할 함수를 넣어주면 된다.
  • 비교 함수는 비교할 아이템의 요소를 반환하면 된다.
  • 비교함수는 lambda도 가능, 별도로 정의하는 것도 가능하다.
  • 비교할 아이템의 요소가 복수 개일 경우, 튜플로 그 순서를 내보내주면 된다.
  • - 를 붙이면, 현재와 반대차순으로 정렬된다.

참고한 블로그는 여기를 클릭

Lambda표현식을 사용해서 풀어볼 수 있는 알고리즘 문제

사실 BAEKJOON Online Judge #1966 풀다가 시간 안에 못 풀어서 해설 강의를 봤는데 그래도 이해가 안되어서 Lambda 관련 내용을 찾아보고 정리해보았다. (갑분 TMI..) 다시 풀어보니 이제야 이해가 간다.😇😇

profile
new blog✨ https://kay-log.tistory.com/

1개의 댓글

comment-user-thumbnail
2022년 1월 29일

선생님 글 출처남기면서 제 velog로 퍼가겠습니다.
사전처럼 사용하려는 velog라 상업적으로 사용이 될 수 없읍니다.
이제 막 시작하는 단계라 도움이 되네요. 감사합니다.

답글 달기