[python] 리스트의 중첩을 해결하기 위한 함수형 프로그래밍 기법이 있나요?

map 함수는 리스트의 각 요소에 대해 동일한 작업을 수행하고 그 결과를 새로운 리스트로 반환합니다. 예를 들어, 다음과 같이 중첩된 리스트의 모든 요소를 더하는 작업을 수행할 수 있습니다.

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

flatten_list = list(map(sum, nested_list))
# 결과: [6, 15, 24]

sum 함수를 map 함수의 첫 번째 인자로 전달하면, map 함수는 각 요소의 합을 계산하여 새로운 리스트로 반환합니다.

또 다른 방법은 reduce 함수를 사용하는 것입니다. reduce 함수는 리스트의 원소를 하나의 값으로 줄여 나갑니다. 예를 들어, 중첩된 리스트의 모든 요소를 곱하는 작업을 수행할 수 있습니다.

from functools import reduce

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

product = reduce(lambda x, y: x * y, [reduce(lambda x, y: x * y, sublist) for sublist in nested_list])
# 결과: 362880

위의 코드는 먼저 중첩된 리스트의 각 요소에 대해 내부 reduce 함수를 사용하여 요소들을 곱한 후, 다시 외부 reduce 함수를 사용하여 모든 요소들을 곱해서 최종 결과를 얻습니다.

이러한 함수형 프로그래밍 기법을 사용하면 중첩된 리스트를 효율적으로 처리할 수 있습니다. 또한, 함수형 프로그래밍은 코드의 가독성과 재사용성을 높여주는 장점이 있습니다.

참고 문서: