>  기사  >  백엔드 개발  >  Python의 익명 함수에 대한 자세한 설명

Python의 익명 함수에 대한 자세한 설명

WBOY
WBOY원래의
2023-06-10 20:07:358238검색

Python의 익명 함수에 대한 자세한 설명

Python은 객체 지향적이고 확장성이 뛰어난 고급 프로그래밍 언어로 수학적 계산, 데이터 처리 및 기타 분야에서 널리 사용되었습니다. Python은 익명 함수가 함수형 프로그래밍의 중요한 부분인 함수형 프로그래밍을 지원합니다. 이 기사에서는 Python의 익명 함수를 자세히 소개합니다.

익명 함수란 무엇인가요?

람다 함수라고도 불리는 익명 함수는 함수 이름이 없는 함수입니다. 필요할 때 정의하고 사용 후 폐기하는 일회성 기능입니다. 예를 들어 다음과 같이 간단한 익명 함수를 정의할 수 있습니다.

lambda x: x**2

위 익명 함수의 의미는 매개변수 x를 전달하고 x의 제곱을 반환하는 것입니다. 여기에는 함수 이름이 없으며 람다 키워드는 익명 함수를 나타내는 데 사용됩니다.

람다 함수의 문법 구조

람다 함수의 문법 구조는

lambda arguments: expression

그 중 인수는 전달된 매개변수를 나타내고 표현식은 표현식을 의미합니다. 이전 예에서와 같이 인수는 x이고 표현식은 x의 제곱입니다.

또한 람다 함수에는 쉼표로 구분된 여러 매개변수가 있을 수 있습니다. 예:

lambda x, y: x + y

위 람다 함수의 의미는 두 개의 매개변수 x와 y를 전달하고 그 합계를 반환하는 것입니다.

람다 함수 사용

Python에서 익명 함수를 사용하는 방법에는 여러 가지가 있습니다. 다음은 몇 가지 일반적인 방법입니다.

1. 람다 함수를 변수에 할당

람다 함수를 변수에 할당한 다음 변수 이름을 통해 익명 함수를 호출할 수 있습니다. 예:

f = lambda x: x**2
print(f(4)) # 输出16

위 코드는 람다 함수를 정의하고 이를 변수 f에 할당한 다음 f(4)를 호출하여 4, 16의 제곱값을 반환합니다.

2. 다른 함수를 매개변수로 전달

다른 함수를 호출할 때 람다 함수를 매개변수로 전달하여 다른 기능을 수행할 수 있습니다. 예:

def apply(func, n):
    return func(n)

print(apply(lambda x: x**2, 5)) # 输出25

위 코드에서 적용 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 함수이고 두 번째 매개변수는 숫자입니다. 두 번째 매개변수(여기서는 숫자 5)가 전달되면 이 함수는 첫 번째 매개변수로 호출되어 숫자 5를 매개변수로 전달합니다. 람다 함수 표현식 x**2가 적용 함수에 첫 번째 인수로 전달되므로 25가 출력됩니다.

3. 다른 기능과 함께 사용

lambda 기능은 필터 기능, 지도 기능 등 다른 기능과 함께 사용되는 경우가 많습니다. 필터 함수는 목록(또는 다른 반복 가능한 객체)을 첫 번째 매개변수로 사용하고 조건을 충족하는 요소만 포함하는 새 목록을 반환합니다. map 함수는 목록(또는 다른 반복 가능한 객체)을 첫 번째 매개변수로 사용하고 함수에 의해 처리된 새 목록을 반환합니다.

예를 들어 다음 코드는 필터 함수와 람다 함수를 결합하는 방법을 보여줍니다.

my_list = [1, 3, 5, 6, 8, 9]
filtered_list = list(filter(lambda x: x % 3 == 0, my_list))
print(filtered_list) # 输出[3, 6, 9]

위 코드에서 필터 함수는 my_list 목록을 필터링하는 데 사용되며, 람다 함수는 분할 가능한 요소를 반환하는 데 사용됩니다. 3으로 계산하고 마지막으로 결과가filtered_list에 할당됩니다.

결론

이 글에서는 Python에서 익명 함수의 정의, 구문 구조 및 사용법을 소개합니다. 익명 함수는 코드를 단순화하고 코드 가독성을 높이기 위해 다른 함수와 함께 사용되는 경우가 많습니다. 익명 함수를 능숙하게 사용하면 코드 품질과 작업 효율성을 향상하는 데 도움이 될 수 있습니다.

위 내용은 Python의 익명 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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