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
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 중복제거 set 집합함수 (with 백준 2776) (0) | 2024.05.29 |
---|---|
파이썬 Counter (with 백준 10815, 10816) (0) | 2024.05.28 |
파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181) (0) | 2024.05.24 |
파이썬 for while 조건문 (with 백준 2446, 2522) (2) | 2024.05.23 |
파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점 (0) | 2024.05.22 |