콘텐츠로 건너뛰기
Home » Python 함수와 람다 표현식 쉽게 배우기

Python 함수와 람다 표현식 쉽게 배우기

  • 기준

람다 함수와 Python 함수의 간편한 활용 방법

파이썬은 다양한 방식으로 함수를 정의할 수 있는 프로그래밍 언어입니다. 그중에서 람다 함수는 특히 간결하게 표현할 수 있는 특징을 지니고 있습니다. 전통적인 함수 정의 방식과는 달리 람다 표현식을 사용하면 불필요한 코드 없이도 간단한 작업을 수행할 수 있습니다. 이번 포스트에서는 람다 함수의 기본 개념과 활용 사례를 알아보도록 하겠습니다.

람다 함수의 정의

람다 함수는 일종의 익명 함수로, 특정한 이름 없이 코드를 실행할 수 있는 방식을 제공합니다. 일반적으로는 특정 작업을 수행하기 위해 정의되는 함수에 비해, 람다 함수는 간단한 연산을 수행할 때 유용하게 활용됩니다. 람다 표현식은 다음과 같은 형태로 작성됩니다:

lambda 매개변수1, 매개변수2: 표현식

이 구문을 사용하면 함수를 짧은 코드로 간단히 작성할 수 있습니다. 함수 이름을 지정하지 않고도 작업을 정의하는 방식이므로, 특히 간단한 계산이나 변환이 필요할 때 적합합니다.

람다 함수의 활용 방식

람다 함수는 일회성으로 사용되는 경우가 많습니다. 예를 들어 두 숫자를 더하는 간단한 함수를 람다로 표현하면 다음과 같습니다:

sum = lambda x, y: x + y

위의 코드는 숫자 x와 y를 더하는 함수를 sum이라는 변수에 할당하는 것입니다. 이처럼 람다 함수를 변수에 담아서 활용할 수 있습니다.

람다 함수를 이용한 다양한 매개변수 설정

람다 함수에서도 기본 매개변수를 설정할 수 있습니다. 예를 들어, 다음과 같이 기본값을 가진 매개변수를 정의할 수 있습니다:

print((lambda x, y=1: x + y)(3))

위 예제에서는 y에 기본값 1을 설정하여, 호출 시 y를 따로 입력하지 않아도 1이 더해지는 결과를 얻게 됩니다. 이처럼 파라미터를 유연하게 설정할 수 있는 것이 람다 함수의 장점입니다.

조건부 표현식과 람다 함수

람다 함수를 조건문과 결합하여 사용할 수도 있습니다. 예를 들어, 아래와 같은 코드를 통해 a가 짝수인지 판단할 수 있습니다:

print((lambda a, b: a if a % 2 == 0 else b)(1, 3))

위 코드는 a가 짝수일 경우 a를 반환하고, 그렇지 않으면 b를 반환하는 구조입니다. 이처럼 람다 표현식을 통해 조건문을 간결하게 처리할 수 있습니다.

내장 함수와의 결합: map

람다 함수는 파이썬의 내장 함수인 map와 함께 사용될 때 더욱 강력한 기능을 발휘합니다. 예를 들어 다음과 같이 리스트의 각 요소에 대해 제곱을 수행할 수 있습니다:

result = list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))

이 코드는 주어진 리스트에 있는 각 요소를 제곱하여 새로운 리스트로 반환합니다. 일반적인 for문을 사용하는 것보다 훨씬 간결한 코드로 구현할 수 있습니다.

filter와 람다 함수

filter 함수 또한 람다 함수와 결합하여 활용할 수 있습니다. filter 함수는 주어진 조건을 만족하는 요소만을 추출합니다. 예를 들면 다음과 같습니다:

result = list(filter(lambda x: x < 5, [0, 1, 2, 3, 4, 5, 6]))

위 코드는 5보다 작은 숫자만을 추출하여 리스트로 반환합니다. 이는 목록에서 특정 조건에 맞는 요소를 쉽게 찾을 수 있는 방법입니다.

정렬 시 람다 함수의 활용

복잡한 데이터 구조를 정렬할 때도 람다 함수를 유용하게 사용할 수 있습니다. 예를 들어 다음과 같은 학생 정보를 담고 있는 리스트에서 점수별로 정렬하고 싶다면:

students = [('영수', 90), ('철수', 85), ('영희', 95)]
sorted_students = sorted(students, key=lambda x: x[1])

위의 코드에서 학생들의 점수를 기준으로 정렬된 새 리스트가 생성됩니다.

재귀 및 람다 함수

람다 함수를 사용한 재귀 함수도 정의할 수 있습니다. 단, 이 경우에는 종료 조건을 명확히 설정해야 합니다. 예를 들어 다음은 팩토리얼을 계산하는 람다 함수입니다:

factorial = lambda x: 1 if x == 0 else x * factorial(x - 1)

람다 표현식이 재귀적으로 자기 자신을 호출하면서 값을 계산하는 구조입니다.

리스트 내포와 람다 함수

리스트 내포(list comprehension)와 함께 사용하는 것도 유용합니다. 예를 들어, 구구단을 리스트로 만들고 싶을 때 다음과 같이 표현할 수 있습니다:

result = [i * j for i in range(2, 10) for j in range(1, 10)]

이처럼 람다 함수는 여러 형태의 프로그래밍 패턴과 조합해 유용하게 활용될 수 있습니다.

람다 함수는 파이썬에서 간결하고 표현력 있게 함수를 정의할 수 있는 유용한 도구입니다. 다양한 활용 사례를 알고 적용한다면 더욱 효율적인 프로그래밍이 가능할 것입니다. 파이썬의 다양한 기능과 함께 활용하여코드를 깔끔하게 유지할 수 있도록 하세요.

자주 찾는 질문 Q&A

람다 함수란 무엇인가요?

람다 함수는 이름이 없는 간단한 함수로, 특히 짧은 코드로 특정 작업을 수행할 때 유용합니다.

람다 함수는 어떻게 정의하나요?

람다 함수는 'lambda 매개변수1, 매개변수2: 표현식' 형태로 작성하여 쉽게 정의할 수 있습니다.

람다 함수를 어디에 활용할 수 있나요?

람다 함수는 주로 일회성 작업이나 간단한 계산을 수행할 때 사용되며, 다양한 내장 함수와 함께 유용하게 활용됩니다.

람다 함수와 조건문은 어떻게 사용하나요?

람다 함수는 조건부 표현식과 결합하여, 특정 조건에 따라 값을 반환하는 간결한 코드를 작성하는 데 유용합니다.

람다 함수를 이용해 리스트의 요소를 어떻게 변경하나요?

파이썬의 map 함수를 사용하면 람다 함수를 통해 리스트의 각 요소에 대해 변환 작업을 간단히 수행할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다