Python에서 함수 매핑, 필터링 및 축소 : 알아야 할 모든 것



Python에서 map (), filter () 및 reduce () 함수가 무엇인지 알아보십시오. 또한 람다 및 사용자 정의 함수와 함께 사용하는 방법을 알고 있어야합니다.

Python은 미리 정의 된 많은 내장 함수를 제공하며 최종 사용자가 호출하기 만하면 사용할 수 있습니다. 이러한 기능은 프로그래머의 작업을 쉽게 할뿐만 아니라 표준 코딩 환경을 만듭니다. 이 기사에서는 세 가지 인상적인 함수 인 map (), filter 및 reduce ()에 대해 배우게 될 것입니다. .

계속 진행하기 전에 내용을 살펴 보겠습니다.





그럼 시작하겠습니다. :)

Java에서 분할은 무엇을합니까?

Python에서 map (), filter () 및 reduce () 함수는 무엇입니까?

앞서 언급했듯이 map (), filter () 및 reduce ()가 내장되어 있습니다. 파이썬 이러한 기능은 다음의 기능적 프로그래밍 측면을 가능하게합니다. . 함수형 프로그래밍에서 전달 된 인수는 출력을 결정하는 유일한 요소입니다. 이러한 함수는 다른 함수를 매개 변수로 사용할 수 있으며 다른 함수에도 매개 변수로 제공 할 수 있습니다. 이제 이러한 각 기능에 대해 자세히 살펴 보겠습니다.



map () 함수 :

map () 함수는 고차 유형입니다. 앞서 언급했듯이이 함수는 반복 가능한 시퀀스와 함께 다른 함수를 매개 변수로 취하고 시퀀스에있는 각 반복 가능 항목에 함수를 적용한 후 출력을 반환합니다. 구문은 다음과 같습니다.

통사론:

map (함수, 이터 러블)



여기서 함수는 반복 가능한 항목에 차례로 적용되는 표현식을 정의합니다. 지도 기능은 사용자 정의 기능뿐만 아니라 람다 함수 매개 변수로.

다음에서 사용자 정의 및 Lambda 함수 사용 :

map () 내의 사용자 정의 함수 :

map () 함수는 사용자 정의 함수를 매개 변수로 사용할 수 있습니다. 이러한 기능의 매개 변수는 사용자 또는 프로그래머가 독점적으로 설정합니다. 예를 들면 :

예:

def newfunc (a) : return a * a x = map (newfunc, (1,2,3,4)) #x는지도 객체입니다. print (x) print (set (x))

산출:

{16, 1, 4, 9}

보시다시피 x는지도 객체입니다. 다음 부분 출력은 newfunc ()를 매개 변수로 사용하는 맵 함수를 표시 한 다음 모든 이터 러블에 a * a를 적용합니다. 결과적으로 모든 이터 러블의 값은 자체적으로 곱 해져 반환됩니다.

노트: set () 함수를 사용했기 때문에 출력이 반복 가능한 값의 순서가 아닙니다. 예를 들어 list () 또는 tuple () 함수를 사용할 수도 있습니다.

예:

def newfunc (a) : return a * a x = map (newfunc, (1,2,3,4)) #x는지도 객체입니다. print (x) print (list (x))

산출:

[1, 4, 9, 16]

둘 이상의 매개 변수 목록도 전달할 수 있습니다. 예를 들면 :

예:

def func (a, b) : return a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

산출:

(3, 6, 8)

이제 어떻게 사용할 수 있는지 보겠습니다. 람다 함수 map () 함수 내에서.

map () 내의 Lambda 함수 :

Lambda 함수는 이름이있는 함수입니다. 이러한 함수는 종종 다른 함수에 매개 변수로 제공됩니다. 이제 map () 함수 내에 람다 함수를 포함 해 보겠습니다. 다음 예를 고려하십시오.

예:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x : x + 3, tup)) print (newtuple)

산출:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

위의 출력은 튜플에있는 각 항목에 람다 식 (x + 3)을 적용한 결과입니다.

filter () 함수 :

filter () 함수는 함수가 true를 반환하는 값으로 구성된 출력 목록을 만드는 데 사용됩니다. 그 구문은 다음과 같습니다.

통사론:

필터 (함수, 반복 가능)

map ()과 마찬가지로이 함수는 사용자 정의 함수와 람다 함수를 매개 변수로 사용할 수도 있습니다.

예:

C ++ 네임 스페이스 란?
def func (x) : if x> = 3 : return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

산출:

[3. 4]

보시다시피 y는 필터 개체이고 목록은 조건 (x> = 3)에 대해 참인 값 목록입니다.

filter () 내에서 람다 사용 :


매개 변수로 사용되는 람다 함수는 실제로 검사 할 조건을 정의합니다. 예를 들면 :

예:

y = 필터 (람다 x : (x> = 3), (1,2,3,4)) print (list (y))

산출: [3. 4]

위의 코드는 이전 함수와 동일한 출력을 생성합니다.

reduce () 함수 :

이름에서 알 수 있듯이 reduce () 함수는 주어진 함수를 이터 러블에 적용하고 단일 값을 반환합니다.

지도 감소 필터 -edureka 감소

이 함수의 구문은 다음과 같습니다.

통사론:

감소 (함수, 반복 가능)

여기에있는 함수는 이터 러블에 적용해야하는 표현식을 정의합니다. 이 함수는 functools에서 가져와야합니다. 기준 치수 . 예를 들면 :

예:

functools import reduce reduce (lambda a, b : a + b, [23,21,45,98])

산출: 187

위의 예에서 reduce 함수는 목록에있는 각 반복 가능 항목을 연속적으로 추가하고 단일 출력을 반환합니다.

Python의 map (), filter () 및 reduce () 함수는 서로 함께 사용할 수 있습니다.

map (), filter () 및 reduce () 함수를 함께 사용 :

이렇게하면 내부 함수가 먼저 해결 된 다음 외부 함수가 내부 함수의 출력에서 ​​작동합니다.

먼저 filter () 함수를 매개 변수로 map () 함수에 전달해 보겠습니다.

map () 내에서 filter () 사용 :

아래에 제공된 코드는 먼저 iterable에 대해 조건 (x> = 3)이 참인지 확인합니다. 그런 다음 출력은 map () 함수를 사용하여 매핑됩니다.

예:

c = map (lambda x : x + x, filter (lambda x : (x> = 3), (1,2,3,4))) print (list (c))

산출: [6, 8]

주어진 튜플에서 3보다 크거나 같은 정수를 필터링하면 결과로 [3,4]를 얻습니다. 그러면 이것을 using (x + x) 조건으로 매핑하면 출력 인 [6,8]을 얻을 수 있습니다.

주요 오류는 무엇입니까

filter () 내에서 map () 사용 :


filter () 함수 내에서 map () 함수를 사용하면 iterable이 먼저 map 함수에 의해 작동되고 filter ()의 조건이 적용됩니다.

예:

c = filter (lambda x : (x> = 3), map (lambda x : x + x, (1,2,3,4))) #lambda x : (x> = 3) print (list (c) )

산출: [4, 6, 8]

reduce () 내에서 map () 및 filter () 사용 :

내부 함수의 출력은 reduce () 함수에 제공된 조건에 따라 감소됩니다.

예:

d = reduce (lambda x, y : x + y, map (lambda x : x + x, filter (lambda x : (x> = 3), (1,2,3,4)))) print (d)

산출: 14

출력은 내부 map () 및 filter () 함수의 결과 인 [6,8]의 결과입니다.

이것으로 우리는 파이썬에서 map (), filter () 및 reduce 함수에 대한이 기사의 마지막에 도달했습니다. 모든 것을 명확하게 이해 하셨기를 바랍니다. 가능한 한 많이 연습하고 경험을 되 돌리십시오.

질문이 있으십니까? 이 '파이썬의 map (), filter () 및 reduce () 함수'블로그의 주석 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.

다양한 응용 프로그램과 함께 Python에 대한 심층적 인 지식을 얻으려면 라이브에 등록 할 수 있습니다. 연중 무휴 지원 및 평생 액세스.