map() 함수는 iterable의 각 요소에 함수를 적용하고 결과를 포함하는 새 iterable을 생성해야 할 때마다 유용합니다.
다음은 map()을 사용하려는 몇 가지 이유입니다.
편의성 및 가독성: map()을 사용하면 for 루프를 사용하여 iterable을 반복하고 각 요소에 함수를 적용하는 것보다 코드를 더 간결하고 읽기 쉽게 만들 수 있습니다. 이는 복잡한 작업이나 대규모 데이터 세트에 특히 유용할 수 있습니다.
성능: 어떤 경우에는 map()을 사용하는 것이 for 루프를 사용하여 iterable을 반복하고 각 요소에 함수를 적용하는 것보다 빠를 수 있습니다. 이는 map()이 C로 구현되어 성능에 최적화되어 있는 반면 for 루프는 Python으로 구현되어 속도가 느릴 수 있기 때문입니다.
함수형 프로그래밍: 'map()' 함수는 함수형 프로그래밍의 일반적인 도구로, 함수는 일류 객체로 취급되며 전달되어 다른 함수의 인수로 사용될 수 있습니다. map()을 사용하면 특히 기능적인 용어로 생각하는 데 익숙한 경우 코드를 더 기능적이고 쉽게 추론할 수 있습니다.
손쉬운 병렬화: 대규모 데이터 세트 또는 계산 집약적인 작업으로 작업할 때 코드를 병렬화하여 여러 프로세서 코어 또는 분산 컴퓨팅 리소스를 활용하는 것이 유용할 수 있습니다. map()을 사용하면 map()에 전달하는 함수가 iterable의 각 요소에서 독립적으로 실행될 수 있으므로 코드를 병렬화하기가 더 쉬워집니다.
전반적으로 map()을 사용하는 것은 iterable로 작업하고 해당 요소에 함수를 적용하는 강력하고 유연한 방법이 될 수 있습니다. 코드를 더 간결하고 읽기 쉽고 성능 있게 만드는 동시에 함수형 프로그래밍 개념을 장려하고 병렬화를 더 쉽게 만들 수 있습니다.
다음은 map() 함수를 사용할 수 있는 몇 가지 예입니다.
데이터 변환: 큰 데이터 세트가 있고 해당 데이터 세트의 각 요소에 함수를 적용해야 하는 경우 map()을 사용하여 변환된 데이터를 포함하는 새 iterable을 만들 수 있습니다.
유형 변환: 예를 들어 정수로 변환해야 하는 문자열 목록이 있는 경우 map()을 사용하여 목록의 각 문자열에 int() 함수를 적용하고 새 정수 목록.
간단한 계산: 목록의 각 요소에 대해 각 숫자의 두 배 또는 제곱과 같은 간단한 계산을 수행해야 하는 경우 map()을 사용하여 계산된 값을 포함하는 새 목록을 만들 수 있습니다.
전반적으로 map() 함수는 간결하고 효율적인 방식으로 iterable에 대한 간단한 작업을 수행하기 위한 강력한 도구입니다. 코드를 단순화하고 더 쉽게 읽고 유지 관리할 수 있습니다.
Python에서 map() 함수는 함수와 iterable을 인수로 취하고 각 요소가 원래의 해당 요소에 함수를 적용한 결과인 새 iterable을 반환하는 내장된 고차 함수입니다. 반복 가능
다음은 map() 함수의 구문입니다.
map(function, iterable, ...)
다음은 map() 함수의 구문입니다.function: iterable의 각 요소에 적용될 함수. 최소한 하나의 인수가 있어야 합니다.
iterable: 함수에 전달될 iterable(예: 목록, 튜플, 집합 또는 사전)입니다.
map() 함수는 이터러블의 각 요소에 함수를 적용한 결과를 포함하는 이터러블인 지도 객체를 반환합니다. 결과 목록을 얻기 위해 list() 함수를 사용하여 지도 객체를 목록으로 변환할 수 있습니다.
다음은 목록의 요소를 두 배로 늘리기 위해 map() 함수를 사용하는 예입니다:
def double(x):
return x * 2
numbers = [1, 2, 3, 4, 5]
doubled_numbers = map(double, numbers)
print(list(doubled_numbers))
이 예에서 double() 함수는 숫자를 입력으로 사용하고 해당 숫자의 두 배를 반환합니다. numbers 목록에는 1부터 5까지의 숫자가 포함되어 있습니다. map() 함수를 사용하여 double() 함수를 numbers 목록의 각 요소에 적용하여 배가된 숫자의 새로운 반복 가능 항목을 만듭니다. 마지막으로 iterable을 목록으로 변환하고 인쇄합니다.
이 프로그램의 출력은 다음과 같습니다.
[2, 4, 6, 8, 10]
따라서 map() 함수가 double() 함수를 numbers 목록의 각 요소에 적용하고 두 배로 된 값을 포함하는 새로운 iterable을 반환했음을 알 수 있습니다.
일반적으로 map() 함수는 iterable의 각 요소에 함수를 적용하여 각 함수 호출의 결과를 포함하는 새로운 iterable을 생성하는 데 사용할 수 있습니다. 이것은 많은 수의 값에 대해 간단한 계산이나 변환을 수행해야 하는 상황에서 매우 유용할 수 있습니다.
다음은 map()과 동일한 결과를 얻기 위해 루프를 사용하는 방법에 대한 예입니다.
def double(x):
return x * 2
numbers = [1, 2, 3, 4, 5]
doubled_numbers = []
for n in numbers:
doubled_numbers.append(double(n))
print(doubled_numbers)
이 예에서 double() 함수는 숫자를 입력으로 사용하고 해당 숫자의 두 배를 반환합니다. numbers 목록에는 1부터 5까지의 숫자가 포함됩니다. for 루프를 사용하여 numbers 목록의 각 요소를 반복하고 double() 함수를 각 요소에 적용하고 결과를 doubled_numbers에 추가합니다. 목록. 마지막으로 doubled_numbers 목록을 인쇄합니다.
[2, 4, 6, 8, 10]
따라서 루프가 map() 함수와 동일한 결과를 달성하여 두 배 값을 포함하는 새 목록을 생성하는 것을 볼 수 있습니다.
그러나 map()을 사용하는 것이 루프를 사용하는 것보다 더 간결하고 효율적일 수 있습니다. 특히 대규모 데이터 세트나 복잡한 함수의 경우 더욱 그렇습니다. map() 함수는 성능에 최적화되어 있으며 경우에 따라 루프보다 빠를 수 있습니다. 또한 map()을 사용할 때 코드가 더 간결하고 읽기 쉬워 유지 관리 및 디버그가 더 쉬워집니다.
'파이썬' 카테고리의 다른 글
[Python]#24 내장 함수 reduce() (0) | 2023.03.16 |
---|---|
[Python]#23 특정 기준 충족하는 모든 개체 filter() (0) | 2023.03.14 |
[Python]#21 'datetime()' 날짜와 시간 함수 (0) | 2023.03.12 |
[Python]#20 수학 모듈 math 활용하기 (0) | 2023.03.10 |
[Python]#19 'platform' 라이브러리 (0) | 2023.03.08 |