베이직 파이썬 - map()이란

안녕하세요 jay입니다.
파이썬을 배우면서 특정 로직을 찾기 위해 구글링을 하다보면
map이라는 함수를 종종 보게됩니다.
다른 언어에서는 라인수를 길게 짜야하는데 
map이라는 함수를 잘 활용하면 1줄로 강력한 결과를 도출할 수 있습니다.



1. map()이란

map함수는  주어진 iterable(list,tuple등)의 각 항목에 
주어진 함수를 적용한 후 결과 목록을 반환합니다.

Syntax

map(fun, iterable)

2. 활용

map에 주어진 iterable(list, tuple)한 각 항목에 함수를 적용하는 로직이므로
iterable한 객체의 항목들이 공통적으로 반복적인 행동을 필요로 할때 활용할 수 있습니다.
아래의 예제들을 보면서 설명드리도록 하겠습니다.

예제 1
# 두개의 정수를 받는 예제

a,b = map(int, input('정수 두 개를 입력하세요: ').split())

print(a,b) # int you want int you want

예제 2
# float to int example

a = [1.5,2.5,3.5,4.5]

c = list(map(int , a))

print(c) # [1,2,3,4]

근데 예제 1과 2의 차이점이 보입니다. 1같은 경우는 list로 강제 형변환을 하지 않아도 정수값이 출력이 되고 예제 2는 list로 강제 형변환을 해야 정수 항목을 가진 리스트가 출력이 됩니다. 이것이 가능한 이유는
map이 반환하는 객체는 iterator라서 변수 여러 개에 저장하는 언패킹(unpacking)이 가능하기 때문입니다.
# return map 

a = map(int, input('정수 두 개를 입력하세요: ').split())

print(type(a)) # <class 'map'>
print(a) # <map object at 0x106513f28>

a = list(a)
print(type(a)) # <class 'list'>
print(a) # [3, 4]


댓글