제로베이스/데이터분석

[기초노트] 내장 함수 map

진주네카라 2021. 10. 19. 14:55
728x90

map

  • map(f, iterable)
    • 함수(f)와 반복 가능한(iterable) 자료형을 입력 받는다.
  • 리스트에 map 사용하기
    • list(map(함수, 리스트))
  • 튜플에 map 사용하기
    • tuple(map(함수, 튜플))

map은 입력받은 자료형의 각 요소(item)에 함수 f를 적용한 결과를 묶어서 돌려주는 함수이다.

 

 

 

map(f, iterable)

 

예시

>>> map(lambda x: x+x, (1, 2, 3))
[2, 4, 6]
>>> map(lambda x, y: x/y, (1, 4, 9), (1, 2, 3))
[1.0, 2.0, 3.0]
>>> map(lambda x, y, z: x+y+z, (1, 4, 9), (1, 2, 3), (1, 16, 27))
[3, 22, 39]

 

사실 map()함수를 위에 처럼 사용하여 print()함수로 출력하면 

 

<map object at 0x000000D65AD6E250>

 

map object 형태로 나와 결과를 확인할 수 없다. 그래서 map object에 들어있는 값을 보려면

list( ), tuple( ), set( ), next( ) 등 여러 방법으로 형태를 변환하여 보면 된다.

 

>>> list(map(lambda x: x + x, (1, 2, 3)))
[2, 4, 6]
>>> tuple(map(lambda x: x + x, (1, 2, 3)))
(2, 4, 6)
>>> set(map(lambda x: x + x, (1, 2, 3)))
{2, 4, 6}

 

d = map(lambda x: x + x, (1, 2, 3))
print(next(d))	#2
print(next(d))	#4
print(next(d))	#6

 

리스트에 map 사용하기

 

예시

>>> a = [1.1, 2.2, 3.3, 4.4]
>>> a = list(map(int, a))
>>> print(a)
[1, 2, 3, 4]

 

리스트 모든 요소가 int로 변환하여 다시 리스트 형태로 저장한다.

 

>>> a = list(map(str, range(5)))
>>> print(a)
['0', '1', '2', '3', '4']

 

 

range로 0부터 4까지 숫자 생성 후 str 문자열로 변환하여 다시 리스트 형태로 저장한다.

 

 

튜플에 map 사용하기

 

>>> b = (1.1, 2.2, 3.3, 4.4)
>>> b = tuple(map(int, b))
>>> print(b)
(1, 2, 3, 4)

 

위와 동일하며 튜플 형태로 저장한다.

 

>>> b = tuple(map(str, range(10)))
>>> print(b)
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

 

 

 

 

 


참고 글

 

map object https://076923.github.io/posts/Python-23/

점프 투 파이썬 https://wikidocs.net/32#map

코딩 도장 https://dojang.io/mod/page/view.php?id=2286 

 

 

728x90