다짐

스파르타 코딩클럽 AI 웹개발 교육 시작과 함께 오늘부터 TIL을 실천 하겠습니다.


[Python] map

띄어쓰기로 구분하여 2개의 입력 값을 받는 알고리즘 문제를 보았다. 아래와 같은 방법으로 입력값을 받을 수 있음을 알았다.

input_list = list(map(int, input().split()))

그런데 저기서 map은 무엇이더냐?

map(함수, 반복적인) 리스트, 튜플과 같은 반복자의 모든 값들을 map의 첫번째 인자 함수에 적용 후 반복자를 리턴 해준다.

map(function, iterable, …) Return an iterator that applies function to every item of iterable, yielding the results.

[참조] https://docs.python.org/3/library/functions.html#map

예를 들어

ex_list = ['1', '2', '3', '4']
input_list = list(map(int, ex_list))
print(input_list)

# output
# [1, 2, 3, 4]

이 경우, 리스트의 담긴 각 문자열 값이 map안에서 int 내장함수를 거치면서 정수형을 담은 리스트가 되었다.

iterable한 자료형의 각 값을 특정 함수에 거쳐 새로운 iterator를 만들 때 유용할 것 같다.


뽀나스

함께 공부하는 팀원 한 분을 통해서 아래와 같이 입력값을 받을 수도 있음을 알게 되었다.

a, b = map(int, input().split())

꼭 리스트화 하지 않아도 2개의 입력값 받기 가능!

단, 2개 이상 값을 map이 리턴하면 에러가 난다. ex) 입력값 3 5 8