728x90
파이썬 심화: 람다 표현식 상세 가이드
람다 표현식이란 무엇일까요?
파이썬에서 람다 표현식은 간결하고 익명의 함수를 생성하는 방법입니다. def 키워드를 사용하여 일반 함수를 정의하는 것과 달리, 람다 표현식은 한 줄로 함수를 표현할 수 있어 코드를 더욱 간결하게 만들 수 있습니다. 주로 고차 함수의 인자로 전달하거나 간단한 연산을 수행할 때 사용됩니다.
기본 구조:
lambda 매개변수: 표현식
- lambda: 람다 표현식을 정의하는 키워드입니다.
- 매개변수: 함수에 전달될 인수입니다. 여러 개의 인수를 전달할 수 있으며, 튜플 형태로 받을 수도 있습니다.
- 표현식: 함수의 결과를 반환하는 식입니다.
예시:
add = lambda x, y: x + y
result = add(3, 4) # result는 7이 됩니다.
위 예시에서 add는 두 수를 더하는 람다 함수입니다. x와 y는 매개변수이고, x + y는 결과를 반환하는 표현식입니다.
람다 표현식의 특징
- 익명성: 함수 이름이 없어서 한 번 사용하고 버릴 수 있습니다.
- 간결성: 한 줄로 함수를 표현하여 코드를 간결하게 만들 수 있습니다.
- 고차 함수와의 호환성: map, filter, reduce 등의 고차 함수의 인자로 자주 사용됩니다.
- 제한된 기능: 복잡한 로직은 구현하기 어렵고, 일반 함수에 비해 표현력이 제한적입니다.
람다 표현식 활용 예시
1. 고차 함수와 함께 사용하기
- map: 각 요소에 함수를 적용하여 새로운 리스트를 생성합니다.
numbers = [1, 2, 3, 4] squared = list(map(lambda x: x**2, numbers)) # squared는 [1, 4, 9, 16]이 됩니다.
- filter: 특정 조건을 만족하는 요소만 추출하여 새로운 리스트를 생성합니다.
numbers = [1, 2, 3, 4, 5] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # even_numbers는 [2, 4]가 됩니다.
- reduce: 리스트의 요소들을 누적하여 하나의 값으로 축소합니다.
from functools import reduce numbers = [1, 2, 3, 4] product = reduce(lambda x, y: x * y, numbers) # product는 24가 됩니다.
2. 정렬 기준으로 사용하기
fruits = ['banana', 'apple', 'orange']
fruits.sort(key=lambda x: x[-1]) # 마지막 글자 기준으로 정렬
3. 간단한 연산 수행하기
result = (lambda x: x*2)(5) # result는 10이 됩니다.
람다 표현식의 장단점
장점:
- 코드를 간결하게 만들 수 있습니다.
- 고차 함수와의 조합을 통해 다양한 기능을 구현할 수 있습니다.
- 일회성 함수를 정의하는 데 유용합니다.
단점:
- 복잡한 로직은 구현하기 어렵습니다.
- 가독성이 떨어질 수 있습니다.
- 일반 함수에 비해 표현력이 제한적입니다.
언제 람다 표현식을 사용해야 할까요?
- 간단한 함수를 한 번만 사용할 때
- 고차 함수의 인자로 함수를 전달할 때
- 코드를 더욱 간결하게 만들고 싶을 때
결론
람다 표현식은 파이썬에서 코드를 간결하게 만들고 가독성을 높이는 데 도움이 되는 강력한 도구입니다. 하지만 모든 상황에서 람다 표현식을 사용하는 것이 좋은 것은 아닙니다. 코드의 가독성과 유지보수성을 고려하여 적절하게 사용해야 합니다.
추가적으로 알아두면 좋은 점
- 람다 표현식은 다른 함수 안에서 중첩되어 정의될 수 있습니다.
- 람다 표현식은 클로저를 지원합니다. 즉, 람다 표현식은 자신이 정의된 환경의 변수에 접근할 수 있습니다.
728x90
'Python을 배워보자 > 11. 기타 심화' 카테고리의 다른 글
파이썬 정규 표현식 (0) | 2024.09.26 |
---|---|
파이썬 컴프리헨션 (0) | 2024.09.26 |
파이썬 데코레이터 (0) | 2024.09.26 |