Python에는 map() 및 reduce() 기능이 내장되어 있습니다.
Google의 유명한 논문 "MapReduce: Simplified Data Treatment on Large Clusters"을 읽어보신 분이라면 map/reduce의 개념을 대략적으로 이해하실 수 있을 것입니다.
먼저 지도를 살펴보겠습니다. map() 함수는 두 개의 매개변수를 받습니다. 하나는 함수이고 다른 하나는 Iterable입니다. map은 전달된 함수를 시퀀스의 각 요소에 차례로 적용하고 결과를 새 Iterator로 반환합니다.
예를 들어 f(x)=x2라는 함수가 있고 이 함수를 목록 [1, 2, 3, 4, 5, 6, 7, 8, 9]에 적용하려면, 다음과 같이 map()을 사용할 수 있습니다.
이제 Python 코드로 구현합니다.
>>> def f(x):... return x * x ...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r) [1, 4, 9, 16, 25, 36, 49, 64, 81]
map()전달된 첫 번째 매개변수는 함수 개체 자체인 f입니다. 결과 r는 Iterator이고 Iterator는 게으른 시퀀스이므로 list() 함수를 사용하면 전체 시퀀스를 계산하고 list를 반환할 수 있습니다.
map() 함수가 필요하지 않다고 생각할 수도 있습니다. 루프를 작성하여 결과를 계산할 수도 있습니다.
L = []for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L)
실제로 가능하지만 위의 루프 코드에서 다음을 통해 명확하게 이해할 수 있습니다. "목록의 각 요소에 f(x) Act를 넣고 결과적으로 새 목록을 생성하시겠습니까?"?
그러므로 map()은 실제로 연산 규칙을 추상화합니다. 따라서 간단한 f(x)=x2를 계산할 수 있을 뿐만 아니라 다음과 같은 복잡한 함수도 계산할 수 있습니다. 목록의 숫자를 문자열로:
>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])) ['1', '2', '3', '4', '5', '6', '7', '8', '9']
위 내용은 MapReduce란 무엇입니까? MapReduce가 어떻게 작동하는지 3분 안에 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!