지금까지 input.split()으로 값을 여러개 입력받고 형 변환을 할 때도 map() 함수를 사용했었다.
이렇게 할 수 있었던 이유는 무엇일까?
사실 input.split()의 결과가 문자열 리스트여서 map을 사용할 수 있었던 것!
a = input().split()
# 10 20 (입력) >>> a ['10', '20']
이처럼 문자열 두 개가 들어있는 리스트가 만들어진다!
이제 map을 사용해서 정수로 변환해보자.
a = map(int, input().split())
# 10 20 (입력) >>> a <map object at 0x03DFB0D0>
list(a)
# >>> [10, 20]
이 리스트 [10, 20]을 변수 두 개에 저장하면 지금까지 사용한 a, b = map(int, input().split())와 같은 동작이 된다.
a, b = map(int, input().split())
# 10, 20 (입력)
# a = 10 , b = 20
그런데 map 은 객체라 값을 확인하려면 list함수로 리스트로 만들어야 하지 않는가..?
아니다!
사실 map이 반환하는 맵 객체는 iterater라서 변수 여러 개에 저장하는 언패킹(unpacking)이 가능하다.
그래서 a, b = map(int, input().split())처럼 list를 생략한 것
**보통 빠른 입력을 위해 sys 패키지의 stdin.readline()을 사용하기도 한다.
2021-09-18
'Language > Python' 카테고리의 다른 글
15. 파이썬 공백을 기준으로 출력 (0) | 2021.09.27 |
---|---|
14. 파이썬 ASCII 코드 (0) | 2021.09.19 |
12. 파이썬 max 함수 (0) | 2021.09.18 |
11. 파이썬 컴프리헨션 (0) | 2021.09.18 |
10. 파이썬 빠른 입출력 (0) | 2021.09.15 |