파이썬
[파이썬] 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/
반응형