>  기사  >  백엔드 개발  >  Pythont 특수 구문 필터, 매핑, 축소, 적용 사용 소개

Pythont 특수 구문 필터, 매핑, 축소, 적용 사용 소개

高洛峰
高洛峰원래의
2017-03-07 16:26:391572검색

(1) 람다

lambda는 Python에서 매우 유용한 구문으로, 한 줄의 최소 함수를 빠르게 정의할 수 있습니다. C 언어의 매크로와 유사하게 기능이 필요한 곳이면 어디든 사용할 수 있습니다.

기본 구문은 다음과 같습니다.

함수 이름 = 람다 args1,args2,...,argsn : 표현식

예:

add = lambda x,y : x + y
print add(1,2)

(2) filter

필터 함수는 필터와 동일합니다. 함수 프로토타입은 필터(함수, 시퀀스)입니다. ), 이는 시퀀스 시퀀스를 의미합니다. 각 요소는 함수를 차례로 실행합니다. 여기서 함수는 부울 함수입니다. 예:

sequence = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x : x % 2 == 0
seq = filter(fun,sequence)
print seq

다음 코드는 다음을 의미합니다. 순서대로 요소를 필터링하려면 모든 짝수입니다.

필터 함수 프로토타입은 대략 다음과 같습니다.

def filter(fun,seq):
    filter_seq = []
    for item in seq:
        if fun(item):
            filter_seq.append(item)
    return filter_seq

(3) map

map의 기본 형태는 map(function, 시퀀스)이며, 함수 function을 시퀀스 시퀀스에 적용한 후 최종 결과 시퀀스를 반환합니다. 예:

seq = [1,2,3,4,5,6]
fun = lambda x : x << 2

print map(fun,seq)

map의 함수 소스 코드는 대략 다음과 같습니다.

def map(fun,seq):
    mapped_seq = []
    for item in seq:
        mapped_seq.append(fun(item))
    return mapped_seq

(4) 감소

리듀스 함수의 형태는 다음과 같습니다: 감소(함수, 시퀀스, initVal), 함수는 이진 함수를 나타내고, 시퀀스는 수행할 시퀀스를 나타냅니다. 처리되며 initVal은 처리 초기값을 나타냅니다. 예:

seq = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x,y: x + y

print reduce(fun,seq,0)

는 초기 값 0부터 시작하여 시퀀스 seq의 각 요소를 누적하므로 결과는 55

리듀스 함수의 소스코드는 대략 다음과 같습니다.


def reduce(fun,seq,initVal = None):
    Lseq = list(seq)
    if initVal is None:
        res = Lseq.pop(0)
    else:
        res = initVal
    for item in Lseq:
        res = fun(seq,item)
    return res

(5) 적용

apply는 다음과 같은 함수를 간접적으로 대체하는 데 사용됩니다.


def say(a,b):
    print a,b

apply(say,(234,&#39;Hello World!&#39;))

Pythont 특수 구문 필터, 매핑, 축소, 적용 사용 방법에 대한 자세한 내용은 PHP에 주의하세요. 관련 기사를 볼 수 있는 중국 사이트!


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