Python에는 Python과 관련된 몇 가지 특수 기능이 내장되어 있습니다. 코드를 더 간결하게 만들 수 있습니다.
예제를 볼 수 있습니다:
1개의 필터(함수, 시퀀스):
str = ['a', 'b', 'c', 'd' ]
def fun1(s): return s if s != 'a' else None
ret = filter(fun1, str)
print ret
## ['b', 'c', 'd']
순서대로 항목에 대해 함수(항목)를 실행하고 실행 결과는 다음과 같은 List/String/Tuple을 구성합니다. True(시퀀스 유형에 따라 다름)가 반환됩니다.
은 필터 기능이라고 볼 수 있습니다.
2 맵(함수, 시퀀스)
str = ['a', 'b','c', 'd']
def fun2(s): return s + ".txt"
ret = map(fun2, str)
ret 인쇄
## ['a.txt', 'b.txt', 'c.txt', 'd.txt']
순서대로 항목에 대해 함수(항목)를 실행하고 실행 결과를 목록으로 확인하여 반환합니다.
Map 또한 여러 시퀀스를 지원합니다. 이를 위해서는 함수가 해당 개수의 매개변수 입력도 지원해야 합니다.
def add(x, y): return x+y
print map(add, range( 10), 범위(10 ))
##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
3 축소(함수, 시퀀스, 시작_값): def add1( x,y): x + y 반환
print Reduce(add1, range(1, 100))
print Reduce(add1, range(1, 100) , 20)
## 4950(참고: 1+2+...+99)
## 4970(참고: 1+2+...+99+20)
예 시퀀스의 항목은 함수를 반복적으로 호출합니다. 시작 값이 있으면 초기 값으로 호출할 수도 있습니다. 예를 들어
4 람다:
g = 람다 s: s + ".fsh"
인쇄 g("하하")
인쇄(람다 x: x * 2) (3 )
## haha.fsh
## 6
이것은 Python에서 지원하는 흥미로운 구문으로, 다음과 유사한 한 줄 최소 함수를 빠르게 정의할 수 있습니다. C 언어에서는 매크로를 람다라고 합니다.