Python 내장 함수 filter (), map (), reduce (), lambda
sequence의 item에 대해 순서대로 function (item) 을 실행하고, 실행 결과가 True인 item을 List/String/Tuple (sequence의 유형에 따라 다름) 로 되돌려줍니다.
예:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a'
>>> filter(f, "abcdef")
'bcdef'
2、map(function, sequence)
sequence의 item에 대해 순서대로 function (item) 을 실행하고, 실행 결과를 보십시오.
예:
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x
...
>>> map(cube , "abcde")
['aa', 'bb', 'cc', 'dd', 'ee']
또한 맵도 여러 개의 sequence를 지원합니다. 이것은function도 상응하는 수량의 매개 변수 입력을 지원해야 합니다.
예:
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]
3、reduce(function, sequence, starting_value)
sequence의 item 순서를 function으로 교체합니다. starting_value, 초기 값으로 호출할 수도 있습니다. 예를 들어 List에 대한 호출
예:
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
55 ( :1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20)
75 ( :1+2+3+4+5+6+7+8+9+10+20)
4、lambda
이것은 Python이 지원하는 재미있는 문법입니다. 이것은 한 줄의 최소 함수를 빠르게 정의할 수 있도록 합니다. C 언어의 매크로와 유사합니다. 이 함수들은 LISP에서 빌려온 것입니다. 함수가 필요한 곳에 사용할 수 있습니다.
예:
>>> g = lambda x: x * 2
>>> g(3)
6
>>> (lambda x: x * 2)(3)
6
lambda 표현식은 함수 대상을 되돌려줍니다.
예:
func = lambda x,y:x+y
func는 다음 함수에 해당합니다.
def func(x,y):
return x+y
주의: def는 문장이고 lambda는 표현식이다. 아래 상황에서 lambda만 사용할 수 있고 def는 사용할 수 없다
[(lambda x:x*x)(x) for x in range(1,11)]
맵,reduce,filter의function은 모두 lambda 표현식으로 생성할 수 있습니다!
map(function,sequence)
sequence의 값을 매개 변수로 각각function에 전달하고 함수 실행 결과를 포함하는list를 되돌려줍니다.
만약function에 두 개의 매개 변수가 있다면, 즉 맵(function,sequence1,sequence2)이다.
예:
구1*1,2*2,3*3,4*4
map(lambda x:x*x,range(1,5))
반환값은 [1,4,9,16]
reduce(function,sequence)
function 수신 매개 변수 개수는 2
먼저 sequence의 첫 번째 값과 두 번째 값을 매개 변수로 function에 전달한 다음, function의 반환 값과 세 번째 값을 매개 변수로 전달한다
function, 그리고 결과 하나만 되돌려줍니다.
예:
1부터 10까지의 누적을 구하다
reduce(lambda x,y:x+y,range(1,11))
반환값은 55입니다.
filter(function,sequence)
function 의 반환 값은 True 또는 False 만 가능합니다.
sequence의 값을 매개 변수로 function에 전달하고, function (x) 의 반환 값이 True라면, x를 필터의 반환 값에 추가합니다.일반적으로 필터의 반환값은list이며, 특수한 상황인 sequence는string이나tuple이며, 반환값은sequence의 유형에 따른다.
예:
1에서 10 사이의 홀수를 찾아내다
filter(lambda x:x%2!=0,range(1,11))
반환값
[1,3,5,7,9]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.