Python
[Python3][복습정리]#0812_map
2nan
2021. 8. 12. 21:49
728x90
백준 알고리즘 연습을 하면서 map 함수를 많이 사용하였는데,
해당 함수의 역할이나 느낌을 아직 정확히 알지 못 해서 다시 정리하기로 했다.
O Map의 정의
- map은 리스트의 요소를 지정된 함수로 처리해주는 함수이며 원본 리스트를 변경하지 않고 새 리스트를 생성하는 특징을 가지고 있다.
이를 List에 적용하는 간단한 예를 보자.
a = [1.2, 2.5, 3.7, 4.6]
for i in range(len(a)):
a[i] = int(a[i])
print (a)
> [1, 2, 3, 4]
우선 for 에 range[len(a)]를 사용해 인덱스를 가져왔고, 가져온 인덱스로 각 요소에 접근해 int로 변환하여 다시 저장했다. 이는 사실 좀 번거로운 편이다. 이럴 때, map을 사용한다면..?
A = [1.2, 2.5, 3.7, 4.6]
A = list( map (int, A) )
print(A)
> [ 1, 2, 3, 4]
한 줄로 모든 식을 마무리했다. map에 int와 list를 넣으면 리스트의 모든 요소를 int를 사용해서 변환한다. 그 다음 list를 사용해서 map의 결과를 다시 리스트로 만들어준다.
map에는 리스트 말고 반복 가능한 모든 객체를 넣을 수 있다.
a = list ( map ( str, range(3) ) )
print(a)
> [ '0', '1', '2', '3']
이처럼 range를 이용해 숫자를 만들고, map과 str를 이용해 이를 문자열로 만들어준 뒤, list 안에 넣는 과정을 만들 수 있다.
또한, 가장 많이 사용한 split을 포함해서 값을 여러 개를 입력받을 때도 사용이 가능하다.
a = map(int, input().split() )
# 10 20 입력
print (a)
> <map object at 0x03DFB0D0>
list(a)
>[10, 20]
input과 split을 활용해 값을 여러 개로 받고, map에 int와 함께 넣으면 map 객체가 만들어진다. 이 때는 보기가 불편하기 때문에, list를 사용해서 10진수의 값을 출력받는다.