CS/Python
[Python] 람다(lambda)함수
겸둥이xz
2021. 2. 23. 01:19
반응형
람다(lambda) 함수
- 함수의 이름 없이, 함수처럼 사용할 수 있는 익명의 함수를 말한다.
- 일반적으로 람다 함수는 이름을 지정하지 않아도 사용할 수 있다.
일반적인 함수 vs 람다 함수
# 일반적인 함수
def f(x, y):
return x + y
print(f(1, 4))
# 5
# 람다함수
f = lambda x, y: x + y
print(f(1, 4))
# 5
위의 두 코드는 모두 입력된 x, y의 값을 더하여 그 결과를 반환하는 함수로, 결과값도 5로 같다.
람다 함수는 별도의 def나 return을 작성하지 않고, 단지 앞에는 매개변수의 이름, 뒤에는 매개변수가 반환하는 결과값인 x + y를 작성했다.
람다 함수의 다른 표현 방식
print((lambda x: x + 1)(5))
# 6
위 코드처럼 이름 없이도 사용할 수 있다.
람다 함수에 별도의 이름을 지정하지 않고 괄호에 람다 함수를 넣고 argument로 5를 입력했다. 결과는 6
람다 함수의 쓰임새
>>> arr = [[28, "jy"] , [35 , "kg"] , [51 , "ak"]]
i = 0, 1, 2 일때 arr[i][0]은 숫자 arr[i][1]는 문자열이다.
>>> sorted_by_num = sorted(arr, key=lambda x: x[0])
>>> print(sorted_by_num)
[[28, 'kg'], [35, 'jy'], [51, 'ak']]
key=lambda x: x[0] 숫자 기준 정렬 (오름차순)
>>> sorted_by_str = sorted(arr, key=lambda x: x[1])
>>> print(sorted_by_str)
[[51, 'ak'], [35, 'jy'], [28, 'kg']]
key=lambda x: x[1] 문자열 기준 정렬 (사전순)
반응형