Hey Tech
[파이썬] map 함수에 대해 알아보자(Feat. lambda 표현식) 본문
728x90
반응형
map 함수란?
map 함수는 *반복 가능한 객체(iterable object)를 입력받고 각 요소에 연산을 수행(맵핑, mapping)하는 함수입니다.
*반복 가능한 객체(iterable object)란 말 그대로 반복이 가능한 객체로서 요소가 하나의 객체에 여러 개가 들어있고, 한 번에 하나의 요소씩 사용할 수 있는 객체를 말합니다. 대표적으로는 문자열(string), 리스트(list), 딕셔너리(dictionary), 세트(set)가 있습니다.
연습 문제
Q1. 리스트에 1부터 10까지의 정수가 담겼을 때 각 요소별 제곱 값을 따로 리스트에 저장하여 출력하는 코드를 작성하시오.
(1) map 함수를 사용하지 않은 코드
# 입력된 값을 제곱하여 리턴하는 함수
def square_function(n):
return n**2
target = list(range(1, 11))
result = []
for value in target:
result.append(square_function(value))
print(result) # 실행 결과: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
입력받는 값을 제곱하여 반환하는 함수를 작성하였으며 반복문을 통해 리스트 내 요소를 하나씩 작성한 함수에 전달하는 코드입니다.
(2) map 함수를 사용한 코드
# 입력된 값을 제곱하여 리턴하는 함수
def square_function(n):
return n**2
target = list(range(1, 11))
result = list(map(square_function, target))
print(result) # 실행 결과: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
위와 같이 map 함수를 활용함으로써 반복문 및 리스트 초기화 코드를 생략할 수 있습니다.
(3) map, lambda 표현식을 사용한 코드
지난 포스팅에서 다룬 것처럼, 함수를 직접 정의하고 일회성으로 사용하는 것은 메모리의 낭비를 유발합니다.
이럴 때는 람다 표현식을 활용하면 메모리 낭비를 막고 코드를 간결하게 작성할 수 있습니다.
target = list(range(1, 11))
result = list(map(lambda n : n**2, target))
print(result) # 실행 결과: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
위와 같이 말이죠.
참고할 만한 포스팅
1. [파이썬] lambda 함수는 언제, 어떻게 쓸까?
2. [파이썬] map 함수에 대해 알아보자(Feat. lambda 표현식)
3. [파이썬] filter 함수에 대해 알아보자(feat. lambda 표현식)
4. [파이썬] reduce 함수에 대해 알아보자(feat. lambda 표현식)
포스팅 내용에 오류가 있다면 아래에 댓글 남겨주세요.
그럼 오늘도 건강한 하루 보내시길 바랍니다 :)
고맙습니다.
728x90
반응형
'SW 개발 > Python' 카테고리의 다른 글
[파이썬] reduce 함수에 대해 알아보자(feat. lambda 표현식) (0) | 2021.02.26 |
---|---|
[파이썬] filter 함수에 대해 알아보자(feat. lambda 표현식) (0) | 2021.02.25 |
[주피터 노트북] 유용한 단축키 모음! (0) | 2021.02.08 |
[파이썬] 결측치(Na, NaN, Null) 제거/변환하기! (0) | 2021.02.02 |
[파이썬] lambda 함수는 언제, 어떻게 쓸까? (0) | 2021.01.26 |