![](https://blog.kakaocdn.net/dn/BbBp5/btq0BEjYMv9/f7RqiWdEp9pxwKIrYMAGo1/img.png)
파이썬에서 정렬을 할 때 기준(key)로써 사용하는 lambda에 대한 정리
1. 람다(lambda)란?
람다는 익명함수라고도 하며 함수를 딱 한 줄로 완성시켜주는 표현식이다.
2. 람다(lambda)의 장점
람다 표현식은 기존의 함수보다 메모리, 속도 측면에서 더 빠르다.
파이썬은 객체지향 프로그래밍 언어이므로 모든 것이 객체로 저장이 된다. 함수 또한 마찬가지.
함수를 정의하게 되면 실행하면서 메모리를 쓰게 되는데 , 람다의 경우 함수이지만 일회성이므로 한 번 사용하고 없어진다. 따라서 메모리 소모도 없음!
3. 람다(lambda)의 형태
람다 표현식은
lambda 인자 : 표현식
의 형태를 띄고있다.
4. 람다(lambda)의 사용법
람다는 여러 형태로 사용이 가능하다.
fu = lambda x : x + 1 print(fu(3)) #실행 결과로 4가 나온다.
map,reduce,filter와 같은 다른 함수도 같이 쓰인다.
람다 안에 조건문도 가능하다.
print((lambda x,y: x if n%2==0 else y )(1))
5. 여러 조건으로 정렬을 해야할 때 사용하는 람다(lambda)
여러 조건으로 정렬을 해야할 때 lambda가 유용하게 쓰인다.
+) 백준 10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
import sys n = int(sys.stdin.readline()) li = [] for _ in range(n): li.append(sys.stdin.readline().split(" ")) # -int(x[1]),int(x[2]),-int(x[3]),x[0]) 순으로 정렬한다. 앞에 - 가 붙으면 내림차순 li.sort(key=lambda x : (-int(x[1]),int(x[2]),-int(x[3]),x[0])) for t in li : print(t[0])
리스트의 메소드인 sort의 key 인자에 lambda를 넣으면 된다.
람다에 들어있는 표현식의 순서대로 정렬이 됨.
참고사이트
파이썬 정렬, 다중 조건으로 한 번에 하기.
파이썬으로 문제를 풀다보면, 여러 조건으로 소팅을 해야하는 경우가 있다. 일반적인 소팅은 다음과 같이 sorted() 혹은 .sort() 를 사용한다. a = [4,1,2,5,7,3,6] b = sorted(a) # b = [1,2,3,4,5,6,7] sorted()..
dailyheumsi.tistory.com
[Python] 람다(lambda) 함수 사용하기
1. lambda 함수람다 표현식은 기존의 함수식보다 메모리, 속도 면에서 우수하다. 파이썬은 OOP(객체 ...
blog.naver.com
[Python]파이썬 람다(lambda)함수(람다식/익명함수)
람다는 함수를 간단하게 사용가능하게 해줍니다. 람다는 이름이 없는함수, 익명함수라고 하기도 합니다. 람다를 사용하는 방법은 매우 간단합니다. 매개변수 두개를 받아 두수의 합을 리턴하는
dpdpwl.tistory.com
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
'Study > Python' 카테고리의 다른 글
[Python/파이썬] 프로세스(Process)와 쓰레드(Thread) (3) | 2021.10.11 |
---|---|
[Network/Python] socket으로 데이터 주고받기 (+ 삽질) (2) | 2021.03.28 |
[Django/Python] (진행중) 점프 투 장고 2-1. 주소와 화면을 연결하는 URL과 뷰 (1) | 2021.03.22 |
[Python/파이썬] 파이썬 입력받는 방법 with input()과 sys.stdin.readline() (0) | 2021.03.09 |
[Python/파이썬] 리스트의 두 요소 위치 변경하기 (스와프,swap) (1) | 2021.02.10 |