람다 기능과 사용

또한 익명 함수로 알려진 람다 함수, 익명 함수는 함수의 이름이 아닌, 함수는 어떤 이름은 수행하지 않습니다있다?
물론. 일부 기능의 경우에만 임시 사용하지만, 거기에 이름을 지정해야 할 필요는 없다 사용할 수없는, 매우 간단한 비즈니스 로직입니다.

간단한 람다 함수에서 첫보기

>>> 람다 X, Y는, X + Y 
<함수 <람다> 0x102bc1c80에서>

x와 y는 함수의 두 개의 매개 변수이며, 콜론 뒤의 표현식은 함수의 반환 값은,이 두 변수와 노력의 함수임을 한 눈에 볼 수 있지만 함수 이름이 아니므로 그것을 어떻게 사용할 수 있나요?
여기에 이름에 바인딩이 익명 함수에 우리를 보자, 그래서 우리는 익명 함수가 가능하게 호출합니다.

>>> 추가 람다 = X, Y, X + Y는 
>>> 추가 
<0x102bc2140에서 기능 <람다>를> 
>>> 추가 (1,2) 
(3)

종래의 기능에 상당

>>> 데프 ADD2 (X, Y)은 : 
..., X + Y 복귀 
... 
>>> ADD2 
<0x102bc1c80에서 기능을 ADD2> 
>>> ADD2 (1,2) 
(3)

람다 사용 시나리오 :

1 프로그래밍 기능 : 
예를 들면 : 정수리스트 오름차순리스트의 필수 요소의 절대 값에 배열 
>>> 목록 1 = [3,5, -2, -1, 0, -2, -3] 
>> > 분류 (List1이 람다 X = 키 : ABS (X)) 
[0, -1, -2 ,. 3 ,. 5 -4, -6] 

수신지지 파라미터의 함수로서 정렬하는 순위 함수 정렬 순서로서 기초리스트 요소이 종류의 절대 값에 따라서한다. 

: 물론, I는 통상의 기능 달성하는데 사용될 수있다 
>>> DEF foo는 (X) 
... 리턴 ABS (X)을 
... 
>>> 정렬 (List1이, 키 = foo에) 
[0, -1, -2 3, -4, 5, -6] 
이 방법으로 단지 충분하지 파이썬 코드 모양이다. 

람다 : 이것은 파이썬은 신속, 1 행의 최소 함수를 정의 할 수있는 흥미로운 구문을 지원하고, 어디서든 기능을 사용할 수 있습니다 
>>> 추가 =는 X-람다의 y 축 : X 축 +를 Y- 
>>> 추가 (5 6) 
11 
>>> (상기 X, λ는 Y- 다음 Y-X 축 +) (5, 6) 
11 

# 2.Python 가장 일반적인 필터 스크리닝, 작은 브러시를 매핑 합병을 감소 람다 표현식 생성하는데 사용될 수있다! 
순서에 관한 내용은 세 가지 기능 프로그래밍 도구가 있습니다 :

맵 (함수 서열) : 하나 개의 통과 기능에 의해 순차적으로 파라미터의 값이 함수의 실행 결과를 포함하는리스트를 반환 할 때. 함수는 두 개의 매개 변수, 즉, 맵 (함수 시퀀스 1, 시퀀스 2)가있는 경우 . 
 
20 # 1 제곱 
>>>리스트 (MAP (람다 X : X * X, 범위 (1,21))) # Python2.x 맵을 사용하여 (X, λ : X * X , 범위 (1,21)) 
[. 1 ,. 4 ,. 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400] 

필터 (함수 시퀀스) 시퀀스 순서대로 항목 기능 (항목)을 수행 할 True로 항목의 구현의 결과를 반환 (시퀀스의 종류에 따라) 목록 / 문자열 / 튜플을 형성한다. 
 
# 1 내지 20 사이의 짝수 탐색 
>>>리스트 (필터 (람다 X : X % 2 == 0, 범위 (1,21))) # Python2.x는 필터를 사용하여 (X, λ : X % 2 == 0 , 범위 (1,21)) 
[2 ,. 4 ,. 6 ,. 8, 10, 12 (20)가 18이고, 16, 14이다] 

함수 파라미터의 개수 만이 접수되고, 제 1 시퀀스 다음 감소 (함수 서열) 제 1 값 및 함수에 전달 된 파라미터되면 함수 반환 값 및 매개 변수는 함수에 전달하고, 제 3 값이 결과를 리턴 제 2 값. 
 
추구의 1에 # 100
>>> functools에서 후 # Python3.x 모듈을 가져올 필요가 감소 감소하여 가져 오는 
, (X + Y, 범위 (1101) 람다 X, Y)를 감소 >>> 
5050 

합산 (100)에 1을 더한 10,000 
>> >를 감소 (람다 X, Y : X + Y 범위 (1101), 10000) 
15,050 

# 3 클로저.. 
클로저 : 그 범위 함수의 범위를 벗어나지 가변 폐쇄도 때에도 있도록 기능이 기능의 내부에 정의 된 여전히 액세스 할 수. 

람다 폐쇄의 함수의 예보기. 
DEF 추가 >>> (N-) 
... 창 (λ) X : X + N- 
... 
>>> 추가 ADD2 = (5). 
>>> ADD2은 (15) 
(20)이며 

, λ는 폐쇄 함수가 전역이고 스코프 범위 ADD2 (15) (20) 및 복귀의 정상 값을 행할 수있다. 이 때문에 지역의 범위, 또한 액세스 할 수있는 전역 범위가되도록 폐쇄의 변수 (n)를 추가 할 역할의 값 (20)을 반환합니다.

또한 익명 함수로 알려진 람다 함수, 익명 함수는 함수의 이름이 아닌, 함수는 어떤 이름은 수행하지 않습니다있다?
물론. 일부 기능의 경우에만 임시 사용하지만, 거기에 이름을 지정해야 할 필요는 없다 사용할 수없는, 매우 간단한 비즈니스 로직입니다.

간단한 람다 함수에서 첫보기

>>> 람다 X, Y는, X + Y 
<함수 <람다> 0x102bc1c80에서>

x와 y는 함수의 두 개의 매개 변수이며, 콜론 뒤의 표현식은 함수의 반환 값은,이 두 변수와 노력의 함수임을 한 눈에 볼 수 있지만 함수 이름이 아니므로 그것을 어떻게 사용할 수 있나요?
여기에 이름에 바인딩이 익명 함수에 우리를 보자, 그래서 우리는 익명 함수가 가능하게 호출합니다.

>>> 추가 람다 = X, Y, X + Y는 
>>> 추가 
<0x102bc2140에서 기능 <람다>를> 
>>> 추가 (1,2) 
(3)

종래의 기능에 상당

>>> 데프 ADD2 (X, Y)은 : 
..., X + Y 복귀 
... 
>>> ADD2 
<0x102bc1c80에서 기능을 ADD2> 
>>> ADD2 (1,2) 
(3)

람다 사용 시나리오 :

1 프로그래밍 기능 : 
예를 들면 : 정수리스트 오름차순리스트의 필수 요소의 절대 값에 배열 
>>> 목록 1 = [3,5, -2, -1, 0, -2, -3] 
>> > 분류 (List1이 람다 X = 키 : ABS (X)) 
[0, -1, -2 ,. 3 ,. 5 -4, -6] 

수신지지 파라미터의 함수로서 정렬하는 순위 함수 정렬 순서로서 기초리스트 요소이 종류의 절대 값에 따라서한다. 

: 물론, I는 통상의 기능 달성하는데 사용될 수있다 
>>> DEF foo는 (X) 
... 리턴 ABS (X)을 
... 
>>> 정렬 (List1이, 키 = foo에) 
[0, -1, -2 3, -4, 5, -6] 
이 방법으로 단지 충분하지 파이썬 코드 모양이다. 

람다 : 이것은 파이썬은 신속, 1 행의 최소 함수를 정의 할 수있는 흥미로운 구문을 지원하고, 어디서든 기능을 사용할 수 있습니다 
>>> 추가 =는 X-람다의 y 축 : X 축 +를 Y- 
>>> 추가 (5 6) 
11 
>>> (상기 X, λ는 Y- 다음 Y-X 축 +) (5, 6) 
11 

# 2.Python 가장 일반적인 필터 스크리닝, 작은 브러시를 매핑 합병을 감소 람다 표현식 생성하는데 사용될 수있다! 
순서에 관한 내용은 세 가지 기능 프로그래밍 도구가 있습니다 :

맵 (함수 서열) : 하나 개의 통과 기능에 의해 순차적으로 파라미터의 값이 함수의 실행 결과를 포함하는리스트를 반환 할 때. 함수는 두 개의 매개 변수, 즉, 맵 (함수 시퀀스 1, 시퀀스 2)가있는 경우 . 
 
20 # 1 제곱 
>>>리스트 (MAP (람다 X : X * X, 범위 (1,21))) # Python2.x 맵을 사용하여 (X, λ : X * X , 범위 (1,21)) 
[. 1 ,. 4 ,. 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400] 

필터 (함수 시퀀스) 시퀀스 순서대로 항목 기능 (항목)을 수행 할 True로 항목의 구현의 결과를 반환 (시퀀스의 종류에 따라) 목록 / 문자열 / 튜플을 형성한다. 
 
# 1 내지 20 사이의 짝수 탐색 
>>>리스트 (필터 (람다 X : X % 2 == 0, 범위 (1,21))) # Python2.x는 필터를 사용하여 (X, λ : X % 2 == 0 , 범위 (1,21)) 
[2 ,. 4 ,. 6 ,. 8, 10, 12 (20)가 18이고, 16, 14이다] 

함수 파라미터의 개수 만이 접수되고, 제 1 시퀀스 다음 감소 (함수 서열) 제 1 값 및 함수에 전달 된 파라미터되면 함수 반환 값 및 매개 변수는 함수에 전달하고, 제 3 값이 결과를 리턴 제 2 값. 
 
추구의 1에 # 100
>>> functools에서 후 # Python3.x 모듈을 가져올 필요가 감소 감소하여 가져 오는 
, (X + Y, 범위 (1101) 람다 X, Y)를 감소 >>> 
5050 

합산 (100)에 1을 더한 10,000 
>> >를 감소 (람다 X, Y : X + Y 범위 (1101), 10000) 
15,050 

# 3 클로저.. 
클로저 : 그 범위 함수의 범위를 벗어나지 가변 폐쇄도 때에도 있도록 기능이 기능의 내부에 정의 된 여전히 액세스 할 수. 

람다 폐쇄의 함수의 예보기. 
DEF 추가 >>> (N-) 
... 창 (λ) X : X + N- 
... 
>>> 추가 ADD2 = (5). 
>>> ADD2은 (15) 
(20)이며 

, λ는 폐쇄 함수가 전역이고 스코프 범위 ADD2 (15) (20) 및 복귀의 정상 값을 행할 수있다. 이 때문에 지역의 범위, 또한 액세스 할 수있는 전역 범위가되도록 폐쇄의 변수 (n)를 추가 할 역할의 값 (20)을 반환합니다.

추천

출처www.cnblogs.com/pyyolo/p/11756354.html