728x90
반응형
람다디람다디람다리람~
lambda 매개변수 : 표현식
한줄로 함수를 만들어내는 아주 유용한 녀석이다.
def plus(x, y):
return x + y
------------------
plus(10, 20)
30
위의 식을 한줄로 만들어 보겠다.
(lambda x,y : x + y)(10,20)
-----------------
30
매개변수를 지정하고, 표현식을 만든다음 인자를 넣어주면 된다.
따란~ 이렇게 쉽게 만들 수 있다.
람다함수 사용 예
sorted함수의 경우 key위치인자에 함수를 보내서, 함수에서 지장한 결과값에 따라서 정렬을 할 수 있다.
다음과 같은 문자를 정렬할때
target = [' cat ', ' tiger ', ' dog', 'snake ']
알파벳 순서가 아니라, 앞뒤 불필요한 공백을 제외한 문자의 길이로 정렬을 하고 싶다면,
정렬의 기준으로 사용할 값을 리턴하는 함수를 생성하여, sorted함수에 넘겨줘야 한다.
def my_key(string):
return len(string.strip())
target = [' cat ', ' tiger ', ' dog', 'snake ']
print(sorted(target, key=my_key))
하지만 my_key라는 함수는 이번 정렬만을 위한 함수이다. 재사용할 이유가 없다면 lambda 함수를 생성하여 넘겨주자.
target = ['cat', 'tiger', 'dog', 'snake']
print(sorted(target, key=lambda x : len(x.strip())))
-------------------------------------------------------
['cat', 'dog', 'tiger', 'snake']
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
람다를 사용해서 풀 수 있는 문제이다.
728x90
반응형
'Python' 카테고리의 다른 글
[Python] 날짜, 시간을 문자열로 변환하는 방법 (date to string, time to string) - strftime (2) | 2023.02.03 |
---|---|
[함수] range() 과 enumerate() (0) | 2023.01.22 |
[라이브러리/itertools] combinations , product , permutations (0) | 2023.01.17 |
[함수] String strip(), rstrip(), lstrip() (0) | 2023.01.17 |
더 이상 미룰 수 없다. 나의 취직과 파이썬메서드/함수공부(메서드와 함수의 차이) (0) | 2023.01.16 |
댓글