본문 바로가기
코딩라이브러리/파이썬

파이썬 람다 함수 lambda (with 백준 1181)

by 유니네 라이브러리 2024. 5. 27.

lambda (람다) 표현식

  • lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.
  • lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다.

제약

  • 문법적으로 하나의 표현식으로 제한됨.
  • 함수명이 없고 단발성으로 사용됨.

● 람다 (lambda) 함수 예시

#list a에 0 ~ 4 의 거듭제곱 값 저장한다.
a = []
for i in range(5):
    a.append(i**2)
print(a) # [0, 1, 4, 9, 16]

#list a에 0 ~ 4 의 거듭제곱 값 lambda 함수로 저장한다.
a = list(map(lambda i: i**2, range(5)))
print(a) # [0, 1, 4, 9, 16]

 

● 정렬 예시

a = [[1,'김씨'], [2, '이씨'],[4, '윤씨'],[3,'박씨']]
print(a) # [[1, '김씨'], [2, '이씨'], [4, '윤씨'], [3, '박씨']]
# list a 의 0번째 값으로 정렬
a.sort()
print(a) # [[1, '김씨'], [2, '이씨'], [3, '박씨'], [4, '윤씨']]
# list a 의 1번째 값으로 람다함수로 정렬
a.sort(key=lambda x: x[1])
print(a) # [[1, '김씨'], [3, '박씨'], [4, '윤씨'], [2, '이씨']]

 

▶ lambda 함수 연습 백준 문제 풀이

https://www.acmicpc.net/problem/1181

N = int(input())
strList = [input() for _ in range(N)]
#중복제거 set() 사용        
a=list(set(strList))
#길이가 짧은것부터 사전순으로 정렬
rtn=sorted(a, key=lambda x: (len(x),x))
print(*rtn, sep="\n")

 

☞ lambda 함수 파이썬 자습서 참고

 

https://docs.python.org/ko/3/reference/expressions.html#lambda

 

6. Expressions

This chapter explains the meaning of the elements of expressions in Python. Syntax Notes: In this and the following chapters, extended BNF notation will be used to describe syntax, not lexical anal...

docs.python.org