>백엔드 개발 >파이썬 튜토리얼 >Python에서 Lambda 함수를 사용하는 방법

Python에서 Lambda 함수를 사용하는 방법

Patricia Arquette
Patricia Arquette원래의
2024-11-01 12:26:02678검색

How to Use Lambda Functions in Python

Python의 Lambda 함수는 작은 익명 함수를 즉시 생성할 수 있는 강력한 방법입니다. 이러한 함수는 일반적으로 전체 함수 정의에 따른 오버헤드가 불필요한 짧고 간단한 작업에 사용됩니다.

기존 함수는 def 키워드를 사용하여 정의되는 반면, Lambda 함수는 람다 키워드를 사용하여 정의되며 코드 줄에 직접 통합됩니다. 특히, 내장 함수의 인수로 자주 사용됩니다. 임시 함수 정의가 필요하지 않아 개발자가 깔끔하고 읽기 쉬운 코드를 작성할 수 있습니다.

이 기사에서는 Lambda 함수의 기능과 해당 구문을 다룹니다. 또한 이를 사용하기 위한 몇 가지 예와 모범 사례를 제공하고 장단점에 대해 논의할 것입니다.

전제 조건

Lambda 함수는 버전 2.0부터 Python의 일부이므로 다음이 필요합니다.

  • 최소 Python 버전: 2.0.
  • 권장 Python 버전: 3.10 이상

이 튜토리얼에서는 빠르고 강력하며 유연하고 사용하기 쉬운 오픈 소스 데이터 분석 및 조작 라이브러리인 Pandas 라이브러리와 함께 Lambda 함수를 사용하는 방법을 살펴보겠습니다. 설치되어 있지 않은 경우 다음을 실행하세요.

pip install pandas

Python용 Lambda 함수의 구문 및 기본 사항

먼저 개발자가 Lambda 함수를 생성하는 데 사용해야 하는 구문을 정의해 보겠습니다.

Lambda 함수는 람다 키워드와 그 뒤에 하나 이상의 인수와 표현식을 사용하여 정의됩니다.

lambda arguments: expression

두 숫자를 더하는 Lambda 함수를 생성한다고 가정해 보겠습니다.

add = lambda x, y: x + y

다음을 실행하세요.

result = add(3, 5)
print(result)

결과는 다음과 같습니다.

8

x와 y라는 두 개의 인수를 사용하는 익명 함수를 만들었습니다. 기존 함수와 달리 Lambda 함수에는 이름이 없습니다. 이것이 바로 "익명"이라고 말하는 이유입니다.

또한 일반 Python 함수에서처럼 return 문을 사용하지 않습니다. 따라서 우리는 Lambda 함수를 마음대로 사용할 수 있습니다. 인쇄할 수 있고(이 경우처럼) 변수에 저장할 수도 있습니다.

이제 Lambda 함수의 몇 가지 일반적인 사용 사례를 살펴보겠습니다.

Lambda 함수의 일반적인 사용 사례

Lambda 함수는 일시적으로 간단한 함수가 필요한 상황에서 특히 사용됩니다. 특히 고차 함수의 인수로 흔히 사용됩니다.

몇 가지 실제 사례를 살펴보겠습니다.

map() 함수와 함께 Lambda 함수 사용

map()은 주어진 함수를 iterable의 각 항목에 적용하고 결과와 함께 지도 객체를 반환하는 내장 함수입니다.

예를 들어 목록에 있는 각 숫자의 제곱근을 계산한다고 가정해 보겠습니다. 다음과 같이 Lambda 함수를 사용할 수 있습니다.

pip install pandas

결과는 다음과 같습니다.

lambda arguments: expression

이제 초기 숫자의 제곱근이 포함된 목록이 생겼습니다.

보시다시피 이는 나중에 재사용할 필요가 없는 기능을 즉시 사용하는 프로세스를 크게 단순화합니다.

filter() 함수와 함께 Lambda 함수 사용

이제 숫자 목록이 있고 짝수를 필터링한다고 가정해 보겠습니다.

다음과 같이 Lambda 함수를 사용할 수 있습니다.

add = lambda x, y: x + y

결과는 다음과 같습니다.

result = add(3, 5)
print(result)

sorted() 함수와 함께 Lambda 함수 사용

Python의 sorted() 함수는 모든 반복 가능한 요소에서 새로운 정렬된 목록을 반환합니다. Lambda 함수를 사용하면 이러한 목록에 특정 필터링 기준을 적용할 수 있습니다.

예를 들어 (x,y)라는 2차원의 점 목록이 있다고 가정합니다. y 값을 점진적으로 정렬하는 목록을 만들고 싶습니다.

다음과 같이 할 수 있습니다.

8

그리고 우리는 다음을 얻습니다:

# Define the list of numbers
numbers = [1, 2, 3, 4]

# Calculate square values and print results
squared = list(map(lambda x: x ** 2, numbers))
print(squared)

List Comprehension에서 Lambda 함수 사용

간결함을 고려하여 Lambda 함수는 즉각적인 계산을 위해 목록 이해에 포함될 수 있습니다.

숫자 목록이 있다고 가정해 보겠습니다. 우리가 원하는 것은:

  • 전체 목록 반복
  • 초기값을 두 배로 계산하여 출력합니다.

이를 수행하는 방법은 다음과 같습니다.

[1, 4, 9, 16]

그리고 우리는 다음을 얻습니다.

# Create a list of numbers
numbers = [1, 2, 3, 4]

# Filter for even numbers and print results
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)

Lambda 함수 사용의 이점

우리가 살펴본 예를 통해 Lambda 함수 사용의 몇 가지 이점을 살펴보겠습니다.

  • 로직이 단순한 경우의 간결성과 가독성: Lambda 함수는 간결한 코드를 허용하므로 표준 함수 정의의 필요성이 줄어듭니다. 이는 함수 로직이 단순한 경우 가독성을 향상시킵니다.
  • 향상된 함수형 프로그래밍 기능: Lambda 함수는 함수형 프로그래밍 원칙에 잘 부합하여 Python 코드에서 함수형 구성을 가능하게 합니다. 특히, 고차 함수의 사용과 일급 객체로서의 함수 적용을 용이하게 합니다.
  • Lambda 함수를 선호하는 시기와 이유: Lambda 함수는 코드의 다른 곳에서 재사용할 필요가 없는 짧은 "일회용" 함수를 정의할 때 특히 유리합니다. 따라서 고차 함수에 대한 인수와 같은 인라인 사용에 이상적입니다.

한계와 단점

Python에서 Lambda 함수의 몇 가지 제한 사항과 단점을 간략하게 논의해 보겠습니다.

  • 복잡한 표현식의 가독성 문제: Lambda 함수는 간결하지만 복잡한 표현식에 사용하면 읽고 이해하기 어려울 수 있습니다. 이로 인해 코드를 유지 관리하고 디버깅하기가 더 어려워질 수 있습니다.
  • 오류 처리 및 디버깅의 제한 사항: Lambda 함수는 단일 표현식만 포함할 수 있으므로 오류 처리를 위한 try-Exception 블록과 같은 문을 포함할 수 없습니다. 이러한 제한으로 인해 이러한 기능이 필요한 복잡한 작업에는 적합하지 않습니다.
  • 제한된 기능: Lambda 함수는 단일 표현식만 포함할 수 있으므로 표준 함수보다 다용도가 떨어집니다. 이러한 설계상의 제한으로 인해 단순한 작업 및 변환에만 사용이 제한됩니다.

Lambda 함수 사용 모범 사례

이제 몇 가지 장단점을 고려했으므로 Lambda 함수를 효과적으로 사용하기 위한 몇 가지 모범 사례를 정의해 보겠습니다.

  • 간단하게 유지: 가독성과 단순성을 유지하려면 Lambda 함수를 짧게 유지하고 간단한 작업으로 제한해야 합니다. 복잡한 로직을 가진 함수는 표준 함수로 리팩토링해야 합니다.
  • 과용 방지: Lambda 함수는 다양한 상황에서 편리하지만, 과도하게 사용하면 코드를 읽고 유지 관리하기 어려울 수 있습니다. 명확성이 기본인 경우에는 신중하게 사용하고 표준 기능을 선택하세요.
  • Lambda 함수를 다른 Python 기능과 결합: 앞서 살펴보았듯이 Lambda 함수는 목록 이해 및 고차 함수와 같은 다른 Python 기능과 효과적으로 결합할 수 있습니다. 이를 적절하게 사용하면 더욱 표현력이 풍부하고 간결한 코드를 얻을 수 있습니다.

Lambda 함수를 사용한 고급 기술

어떤 경우에는 고급 Lambda 함수 기술이 도움이 될 수 있습니다.

몇 가지 예시를 살펴보겠습니다.

중첩된 Lambda 함수

복잡한 작업을 위해 Lambda 함수를 중첩할 수 있습니다.

이 기술은 여러 개의 작은 변환을 연속적으로 수행해야 하는 시나리오에 유용합니다.

예를 들어 숫자의 제곱근을 계산한 다음 1을 더하는 함수를 생성한다고 가정해 보겠습니다. 이를 위해 Lambda 함수를 사용하는 방법은 다음과 같습니다.

pip install pandas

얻을 수 있는 혜택:

lambda arguments: expression

고급 기능을 위한 Python 라이브러리와의 통합

많은 Python 라이브러리가 Lambda 기능을 활용하여 복잡한 데이터 처리 작업을 단순화합니다.

예를 들어 Lambda 함수를 Pandas 및 NumPy와 함께 사용하여 데이터 조작 및 변환을 단순화할 수 있습니다.

두 개의 열이 있는 데이터 프레임이 있다고 가정합니다. 우리는 다른 두 열의 합인 또 다른 열을 만들고 싶습니다. 이 경우 다음과 같이 Lambda 함수를 사용할 수 있습니다.

add = lambda x, y: x + y

그리고 우리는 다음을 얻습니다:

pip install pandas

파이썬의 Lambda 함수에 대한 간단한 둘러보기는 여기까지입니다!

마무리

이 기사에서는 Python에서 Lambda 함수를 사용하는 방법을 살펴보고 장점과 단점, 모범 사례를 살펴보고 몇 가지 고급 사용 사례를 다루었습니다.

즐거운 코딩하세요!

P.S. Python 게시물이 보도되자마자 읽고 싶다면 Python Wizardry 뉴스레터를 구독하고 게시물 하나도 놓치지 마세요!

위 내용은 Python에서 Lambda 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.