이 글은 Python의 람다 함수 사용법을 소개합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
익명 함수 람다: 식별자(함수 이름)를 정의할 필요가 없는 함수 또는 서브루틴 유형을 나타냅니다.
람다 함수는 원하는 수의 매개변수(선택적 매개변수 포함)를 수신하고 단일 표현식의 값을 반환할 수 있습니다.
구문:
lambda [arg1 [,arg2,.....argn]]:expression
매개변수는 콜론 앞에 있으며 여러 개가 있을 수 있고 쉼표로 구분되며 콜론 오른쪽에 있는 것이 표현식입니다(1개만 가능). 실제로 람다의 반환값은 함수 객체인 함수의 주소이다.
예:
1. 람다 함수를 변수에 할당하고 이 변수를 통해 간접적으로 람다 함수를 호출합니다.
def sum(x,y): return x+y print(sum(1,2))
람다 함수 사용:
sum = lambda x,y : x+y print(sum(1,2))
2. 람다 함수를 다른 함수에 매개변수로 전달합니다. 일부 Python 내장 함수는 함수를 매개변수로 허용합니다.
def odd(x): return x%2 temp = range(10) show = filter(odd,temp) print(list(show)) #[1, 3, 5, 7, 9]
람다 함수 사용:
print(list(filter(lambda x: x%2,range(10)))) #[1, 3, 5, 7, 9]
이때 목록 요소 필터링 조건을 지정하는 데 람다 함수가 사용됩니다.
또 다른 예:
map(lambda x: x+1, [1, 2,3]) #[2, 3, 4]
이때 목록의 각 요소에 대한 공통 연산을 지정하기 위해 람다 함수가 사용됩니다.
추가: sorted(), map()
3. 람다 함수를 다른 함수의 반환 값으로 사용하여 호출자에게 반환합니다.
함수의 반환 값도 함수일 수 있습니다. 예를 들어
return Lambda x, y: x+y
는 덧셈 함수를 반환합니다. 이때 람다 함수는 실제로는 중첩함수(nested function), 내부함수(internal function)라고 불리는 특정 함수 내부에 정의된 함수이다. 따라서 중첩된 함수를 포함하는 함수를 외부 함수라고 합니다. 내부 함수는 외부 함수의 지역 변수에 액세스할 수 있습니다. 이 기능은 클로저 프로그래밍의 기초입니다.return lambda x, y: x+y
返回一个加法函数。这时,lambda函数实际上是定义在某个函数内部的函数,称之为嵌套函数,或者内部函数。对应的,将包含嵌套函数的函数称之为外部函数。内部函数能够访问外部函数的局部变量,这个特性是闭包(Closure)编程的基础。
4.将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。
4. 람다 함수를 다른 함수에 할당하여 다른 함수를 람다 함수로 대체합니다.例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:
time.sleep=lambda x:None
。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)
예를 들어, 표준 라이브러리 시간에서 sleep 함수를 마스킹(모의)하려면 프로그램 초기화 중에 time.sleep=lambda x:None
을 호출하면 됩니다. 이런 식으로 후속 코드에서 시간 라이브러리의 sleep 함수를 호출하면 원래 기능이 수행되지 않습니다. 예를 들어 time.sleep(3)
을 실행하면 프로그램은 3초 동안 절전 모드로 전환되지 않지만 아무 작업도 수행하지 않습니다
A가 True이면 조건식의 결과는 표현식1이고, 그렇지 않으면 표현식2입니다.
def s(x): if x==1: return "yes" else: return "no" print(s(0)) print(s(1))
s=lambda x:"yes" if x==1 else "no" print(s(0)) print(s(1))
위 내용은 Python의 람다 함수 사용법 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!