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
https://www.acmicpc.net/problem/10825
람다를 사용해서 풀 수 있는 문제이다.
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 |
댓글