소프트웨어에 대한 모든 것

[파이썬] map 사용하기 본문

파이썬

[파이썬] map 사용하기

앤테바 2022. 2. 28. 21:04
반응형

파이썬 map() 함수에 대해서 알아보겠습니다.

map(), filter(), reduce()는 형제 같은 함수인데요.

저는 그 중 map() 함수를 가장 사용 하는 것 같습니다.

 

map() 함수

주어진 iterable의 각 아이템에 대해서 주어진 함수를 적용하여 iterator를 반환합니다.

 

예제) 제곱

nums = [2,4, 6, 8, 10]

square = lambda x: x*x

iterator = map(square, nums)
print('map() 리턴 타입 : ', type(iterator))

squared_nums = list(iterator)
print(squared_nums)

출력

map() 리턴 타입 :  <class 'map'>
[4, 16, 36, 64, 100]

map() 함수 문법

map(function, iterable[, iterable1, iterable2, ... iterableN])

전달 인자 설명:

- function : iterable의 각 아이템에 적용할 함수

- iterable :  sets, lists, tuples 같은 iterable

 

map() 함수 리턴 타입

map class를 리턴합니다.

nums = [2, 4, 6, 8, 10]

square = lambda x: x*x

iterator = map(square, nums)
print('map() 리턴 타입 : ', type(iterator))

print(next(iterator))
print(next(iterator))
print(next(iterator))
print(next(iterator))
print(next(iterator))

출력

map() 리턴 타입 :  <class 'map'>
4 16 36 64 100 

 

map() 함수 멀티 iterable 사용 예제

num1, num2 리스트를 map()에 넘겨서 각 원소끼리 multiply

num1 = [2, 3, 4]
num2 = [5, 6, 7]

result = map(lambda n1, n2: n1*n2, num1, num2)
print(list(result))

출력

[10, 18, 28]

 

예제 - int형 리스트를 float형으로 변환

nums = [2, 4, 6, 8]

result = map(float, nums)
print(list(result))

출력

[2.0, 4.0, 6.0, 8.0]

예제 - 문자열 리스트를 대문자/소문자 리스트로 변환

words = ['Hello', 'World', 'Love', 'Peace']

result = map(str.upper, words)
print('대문자 : ', list(result))

result = map(str.lower, words)
print('소문자 : ', list(result))

출력

대문자 :  ['HELLO', 'WORLD', 'LOVE', 'PEACE']
소문자 :  ['hello', 'world', 'love', 'peace']

예제 - 문자열을 숫자로 변환

nums = [12, 5, 1, 9, 21]

result = map(int, nums)
print('to 정수 : ', list(result))

result = map(float, nums)
print('to 실수 : ', list(result))

출력

to 정수 :  [12, 5, 1, 9, 21]
to 실수 :  [12.0, 5.0, 1.0, 9.0, 21.0]

 

 

함께 보면 좋은 글:

https://www.programiz.com/python-programming/methods/built-in/map

https://realpython.com/python-map-function/

 

반응형
Comments