(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,'Hello World!'))