Python에는 세 가지 기본 함수, 즉 filter(), map() 및 Reduce()가 있습니다. 이들은 각각 필터링, 매핑 및 집계 함수를 제공합니다. 이전 섹션에서는 단순히 filter() 함수와 익명 함수를 결합하여 사용했습니다. 아래에서는 그 사용법을 자세히 소개하겠습니다.
데이터를 필터링하고 필터링할 때 일반적으로 문제를 신속하게 해결하는 데 도움이 되는 filter() 함수를 사용합니다. 구문 형식은 다음과 같습니다.
filter(함수, 반복 가능한 객체)
필터 함수에서 필터링 또는 필터링 메서드, 즉 함수 이름 을 앞에 두고 반복 가능한 개체를 뒤에 저장합니다.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))#함수 이름만 필요하고 매개변수는 필요하지 않습니다.
출력 결과:
<filterobjectat0x034C2DD8>
이 예와 관련하여 먼저 x가 짝수이면 값을 반환하는 test() 함수를 정의한 다음 test() 함수를 사용하여 filter() 함수를 통해 my_list 목록을 필터링하지만 출력 결과는 < 0x034C2DD8> 의 필터 객체, 여기서는 filter() 함수의 반환 값이 반복 가능한 객체이며 값에 반복적으로 액세스하거나 list() 함수를 사용하여 유형 변환을 강제해야 한다는 점에 유의해야 합니다.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))foriinfilter(test,my_list):print('반복 후 데이터: ',i)print('list() 메소드 사용:',list(filter(test,my_list)))
출력은 다음과 같습니다
반복의 데이터: 2 반복의 데이터: 4 반복의 데이터: 6 list() 메서드 사용: [2, 4, 6]
이전에는 map() 함수를 여러 번 사용했습니다. 예를 들어, 여러 값을 입력하려면 다음과 같은 네 가지 값을 입력해야 할 때 map() 함수를 사용합니다.
a,b,c,d=map(int,input().split())print(a,b,c,d)
map() 함수의 구문 형식은 다음과 같습니다.
map(함수, 반복 가능한 객체)
map() 함수를 사용할 때 주로 데이터 처리를 위해 사용합니다. 반복 가능한 객체의 데이터는 함수에 의해 처리된 후 저장되기 위해 계속해서 list() 함수를 사용합니다.
먼저 4개의 값을 입력한 위의 예를 살펴보겠습니다. Int는 함수이고, input().splite에 의해 입력된 값은 int 함수에 의해 처리된 후 map 객체에 저장되는 iterable 객체입니다.
map() 함수를 사용하여 함수를 통해 시퀀스의 모든 데이터를 처리할 수 있습니다. 다음 예를 참조하세요.
문자를 목록에 저장하고, 소문자가 있으면 대문자로 만듭니다.
코드는 다음과 같습니다:
deftest(x):ifx.islower():returnx.upper()else:returnxmy_list=['d','o','t','C','p','P']print(list(map (테스트, 내_목록)))
출력은 다음과 같습니다
['D','O','T','C','P','P']
test() 함수는 먼저 x를 판단합니다. 소문자인 경우 대문자가 아닌 경우 해당 값을 반환합니다.
Reduce() 함수는 함수형 메서드를 통해 반복 가능한 객체를 집계하는 데 사용됩니다.
구문 형식은 다음과 같습니다.
Reduce(함수, 반복 가능한 객체[, 초기값])
예를 들어, 목록이 [1,2,3,4]라는 것을 알고 있으며 목록에 있는 모든 항목의 합계를 순서대로 곱해야 합니다. 감소() 함수를 사용할 수 있습니다.
fromfunctoolsimportreduce#reduce 함수는 functools 모듈에 정의되어 있으며 deftest(x,y):returnx*ymy_list=[1,2,3,4]print(reduce(test,my_list))를 도입해야 합니다.
출력은 다음과 같습니다
코드의 첫 번째 줄에서는 이 메서드를 소개하며, 모듈에 대해서는 나중에 설명하겠습니다. test() 함수는 곱할 두 개의 데이터를 반환한 다음, my_list 목록은 Reduce() 함수를 통해 처리됩니다.
처리 과정은 다음과 같습니다.
첫 번째 단계를 먼저 실행한 후 결과를 얻고 다음 단계를 곱한 다음 마지막 숫자로 이동합니다.
이 세 가지 함수 중 처음 두 개는 일반적으로 사용됩니다. 이 세 가지 함수를 익히면 일련의 복잡한 문제를 해결하는 데 도움이 될 수 있습니다. 다음 섹션에서는 재귀 함수에 대해 알아봅니다.