람다 함수(lambda function)는 파이썬에서 익명(Anonymous) 함수를 생성하는 방법입니다.
람다 함수는 `lambda` 키워드를 사용하여 정의되며, 일반적으로 간단한 함수를 정의할 때 사용됩니다.
람다 함수는 주로 함수의 인자로 전달하거나 간단한 연산을 수행하는 함수를 간결하게 표현할 때 유용합니다.
람다 함수의 기본 구문은 다음과 같습니다.
lambda arguments: expression
- `lambda`: 람다 함수를 정의하기 위한 카워드 입니다.
- `arguments`: 함수의 인자를 나타내는 부분으로, 필요한 개수 만큼 인자를 정의할 수 있습니다.
- `expression`: 람다 함수가 실행할 표현식(expression)을 나타내며, 이 표현식의 결과가 람다 함수의 반환 값이 됩니다.
다음은 간단한 람다 함수의 예제 입니다.:
names = ['Alice', 'Bob', 'Charlie', 'David']
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
#출력: ['Bob', 'Alice', 'David', 'Charlie']
위 예제에서 람다 함수는 문자열의 길이를 기준으로 리스트를 정렬합니다.
람다함수는 간단한 함수를 간결하게 표현할 때 유용하지만, 복잡한 함수나 여러 줄의 코드를 표현하기에는 적합하지 않습니다. 이런 경우에는 일반적인 함수를 사용하는 것이 더 좋습니다.
람다함수도 if 조건문과 함께 사용되기도 합니다.
람다함수를 if 조건문과 함께 사용할 때, 람다 함수는 조건에 따라 다른 동작을 수행할 수 있습니다. 이러한 동작은 조건문을 통해 결정되며, 조건문은 주로 삼항 조건 연산자(ternary conditional operator)를 사용하여 구현됩니다.
파이썬의 삼항 조건 연산자는 다음과 같은 형식을 가집니다.
value_if_true if condition else value_if_false
여기에서 `condition`은 조건을 나타내며, 만약 `condition`이 참(True)이면 `value_if_true`가 반환되고, 그렇지 않으면 `value_if_false`가 반환됩니다.
람다 함수와 삼항 조건 연산자를 함께 사용하는 예제를 살펴보겠습니다.
#숫자 x가 짝수이면 x를 2로 나누고, 홀수이면 x를 3으로 곱하는 람다 함수
modify_number = lambda x: x / 2 if x % 2 == 0 else x * 3
#사용 예제
result1 = modify_number(4) #4는 짝수이므로 4 / 2 = 2가 반환됨
result2 = modify_number(5) #5는 홀수이므로 5 * 3 = 15가 반환됨
print(reulst1) # 출력: 2.0
print(reulst2) # 출력: 15
위의 예제에서 `modify_number` 람다 함수는 입력된 숫자가 짝수인지 확인하고, 짝수인 경우에는 2로 나누고 홀수일 경우에는 3으로 곱합니다. 이 동작은 삼항 조건 연산자를 사용하여 조건에 따라 다르게 처리되는 것을 보여줍니다.
람다함수와 if 조건문을 함께 사용하면 간결한 인라인 함수를 정의할 수 있스며, 특정 조건에 따라 다른 동작을 수행할 수 있습니다.
다른 프로그램 언어에서 익명함수를 만든는 방법을 비교해 보면 이해가 더 쉬울 수도 있을 것 같습니다.
1. JavaScript의 익명 함수(람다 함수): JavaScript에서도 익명 함수를 생성할 수 있습니다. 다음은 JavScript에서의 익명 함수 예제입니다.
var add = function(x, y) {
return x + y;
};
// 또는 ES6의 화살표 함수
var subtract = (x, y) => x - y ;
2. Java 의 익명 내부 클래스: Java에서는 익명 내부 클래스를 사용하여 익명 함수와 비슷한 기능을 수행할 수 있습니다. 예를 들어, ActionListner 인터페이스를 구현한 익명 내부 클래스를 사용하여 버튼 클릭 이벤트를 처리할 수 있습니다.
button.addActionListner(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 버튼 클릭 시 실행할 코드
}
});
위의 코드에서 익명 내부 클래스는 ActionListener를 구현하고, actionPerformed 메서드를 익명 함수처럼 사용합니다.
3. C#의 람다식: C#에서는 람다 식을 사용하여 익명 함수를 생성할 수 있습니다. 예를 들어, LINQ쿼리에서 람다 식을 사용하여 데이터를 필터링하거나 변환할 수 있습니다.
List<int> numbers = new List<int> {1, 2, 3, 4, 5};
var evenNumbers = numbers.Where(x => x % 2 == 0)
위 코드에서 `x => x % 2 == 0`는 익명 함수를 나타냅니다.
'Programming > 파이썬' 카테고리의 다른 글
[Python] Date, Time 관련 함수 정리 (2) | 2024.01.13 |
---|---|
[파이썬] 맵 함수 - map() (0) | 2023.09.10 |
[파이썬] 리스트 컴프리헨션 (0) | 2023.09.10 |