라일락 꽃이 피는 날

[Python] 람다 함수 (lambda function) 본문

프로그래밍/Python

[Python] 람다 함수 (lambda function)

eunki 2021. 6. 4. 20:33
728x90

람다 함수 (lambda function)

간단한 함수를 임시적으로 만들어서 쓰고자 할 때 사용한다.
식은 한 줄의 식으로만 작성이 가능하다.

a = lambda x, y: x ** y

print(a(5, 3))  # 125
a = [4, 'k', 5, 'u', 6, 2, 'a', 'c', 'y']

a.sort(key=lambda x: str(x))

print(a)  # [2, 4, 5, 6, 'a', 'c', 'k', 'u', 'y']
a = [('아메리카노', 3000),
    ('에스프레소', 2500),
    ('카페모카', 3500),
    ('카페라떼', 4000),
    ('레몬티', 5000)]
    
a.sort(key=lambda x: x[1])

print(a)  # [('에스프레소', 2500), ('아메리카노', 3000), ('카페모카', 3500), ('카페라떼', 4000), ('레몬티', 5000)]

 

 

 


람다 함수가 유용하게 사용되는 함수

 

1. filter

특정 조건을 만족하는 요소만 남기고 필터링한다.

nums = [1, 2, 3, 6, 8, 9, 10, 11, 13, 15]

list(filter(lambda n: n % 2 == 0, nums))  # [2, 6, 8, 10]

 

 

2. map

각 원소를 주어진 수식에 따라 변형하여 새로운 리스트를 반환한다.

nums = [1, 2, 3, 6, 8, 9, 10]

list(map(lambda n: n ** 2, nums))  # [1, 4, 9, 36, 64, 81, 100]

 

 

3. reduce

차례대로 앞 2개의 원소를 가지고 연산한 후, 연산의 결과가 또 다음 연산의 입력으로 진행된다.

import functools

a = [1, 3, 5, 8]

# 리스트 내의 모든 숫자의 합
functools.reduce(lambda x,y: x + y, a)  # 17
728x90

'프로그래밍 > Python' 카테고리의 다른 글

[Python] Comprehension (함축)  (0) 2021.06.14
[Python] Packing, Unpacking  (0) 2021.06.14
[Python] Scope (스코프)  (0) 2021.06.04
[Python] 함수 인자 (argument)  (0) 2021.06.04
[Python] 함수 (def)  (0) 2021.06.04