이전 장:정규 표현식,첨단
다음 장으로 목록해

람다,필터를,감소시키고지도

람다 Operator

그것과 같은 몇 가지,다른 사람이 그것을 미워하고 많은 사람들이 두려워하는 람다의 연산자입니다. 우리는 당신이 좋아할 것이라고 확신합니다.당신이 우리의 튜토리얼의이 장을 마쳤을 때., 하지 않을 경우,당신은 배울 수 있습니다 모두에 대해”목록 함축”,귀도 반 Rossums 선호하는 방법으로,그것을 할 becausehe 좋아하지 않는 람다,지도,필터를 줄다.
람다 연산자 또는 람다 함수는 작은 익명 함수,즉 이름이없는 함수를 만드는 방법입니다. 이러한 함수는 던져-멀리 함수,즉 그들은 단지 그들이 만든 곳에 필요한.람다 함수는 주로 함수 filter(),map()및 reduce()와 함께 사용됩니다.Lisp 프로그래머의 수요로 인해 Lambda 기능이 Python 에 추가되었습니다.,
일반적인 구문의 람다 함수입니다 아주 간단하다:
람다 argument_list:식
인수 목록으로 구성되어 있는 쉼표로 구분한 목록을 인수 및 expressionis 표현식을 사용하여 이러한 인수입니다. 변수에 함수를 할당하여 이름을 지정할 수 있습니다.
다음 예에는 람다 함수의 합계를 반환합니다 그는 두 개의 인수:

>>> f = lambda x, y : x + y>>> f(1,1)2

지도()함수

의 장점 lambda 연산자를 볼 수 있습니다면 그것은 함께 사용하여 지도()함수입니다.,
지도()함수와 두 개의 인수:

r = map(func, seq)

첫 번째 인수 func 는 이름의 함수와 두 번째 시퀀스에서(예를 들어 목록)seq. map()는 함수 func 를 시퀀스 seq 의 모든 요소에 적용합니다. 그것은 우리가 람다를 사용하지 않은 위의 예에서 funcIn 에 의해 변경된 요소와 함께 새로운 목록을 반환합니다. 람다를 사용함으로써 화씨()및 섭씨()함수를 정의하고 이름을 지정할 필요가 없었을 것입니다. 다음 대화식 세션에서 이것을 볼 수 있습니다:맵()을 둘 이상의 목록에 적용 할 수 있습니다. 목록은 길이가 같아야합니다., 지도()이 applyits 람다 함수의 인자 목록,즉 그것은 처음에 적용되는 요소로 0 번째,다음의 요소를 가진 1 인덱스까지 제 n 지수에 도달:

>>> a = >>> b = >>> c = >>> map(lambda x,y:x+y, a,b)>>> map(lambda x,y,z:x+y+z, a,b,c)>>> map(lambda x,y,z:x+y-z, a,b,c)

우리는 볼 수 있습니다 위의 예에서는 x 매개 변수의 값을 나열하는 동안,y getsits 에서 값 b,z 목록에서 c.

필터링

기능 필터는(기능,목록)를 제공한 방식을 이 필터는 모든 요소의 목록은,하는 함수 기능 True 를 반환합니다.
함수 필터(f,l)는 첫 번째 인수로 함수 f 가 필요합니다., f 는 부울 값,즉 eitherTrue 또는 False 를 반환합니다. 이 함수는 목록 l 의 모든 요소에 적용됩니다.F 가 True 를 반환하는 경우에만 목록의 요소가 결과 목록에 포함됩니다.

목록 줄이기

함수 reduce(func,seq)는 함수 func()를 시퀀스 seq 에 지속적으로 적용합니다. 그것은 asingle 값을 반환합니다.,
경우 seq=를 호출을 줄일(func,seq)같은 작품이:
우리는 이 프로세스의 이해를 돕기 위해 다음 예제:

>>> reduce(lambda x,y: x+y, )113

다이어그램 중간 단계의 계산:

의 예 reduce()

결정 최대 목록의 숫자 값을 사용하여 감소:

>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>> 

합산하의 번호는 1 에서 100:

>>> reduce(lambda x, y: x+y, range(1,101))5050

이전 장:정규 표현식,첨단
다음 장으로 목록해

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다