nan + nan = 2nan

[Python3][복습정리]#0812_map 본문

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진수의 값을 출력받는다.

Comments