문득 알고리즘 문제를 풀다가
list(map(int, input().strip().split())) 랑 [map(int, input().strip().split())] 의 차이
의 차이에 대해 궁금해서 찾아봤다.
정말 직관적으로 이해가 가능했다.
이들의 차이를 이해하려면 Python의 'map' 함수와 리스트 컴프리헨션에 대해 이해할 필요가 있다.
1. list(map(int,input().strip(),split()))
- input().strip(),split() 은 입력된 문자열을 공백을 기준으로 나누어 리스트로 만든다.
- map(int, ...) 는 이 리스트의 각 원소를 정수로 변환한다. 'map' 함수는 지정된 함수(여기서는 'int')를 리스트의 각 원소에 적용한다.
- list(...) 는 'map' 객체를 실제 리스트로 변환한다. 결과적으로, 이 표현식은 문자열로 입력된 숫자들을 정수 리스트로 변환한다.
2. [map(int, input().strip().split())]
- 이 표현식 역시 'input().strip().split()' 으로 문자열을 분리한 후, 'map(int, ...)' 으로 각 원소를 정수로 변환하려고 시도한다.
- 그러나 여기서는 'map' 객체를 리스트로 변환하지 않고, 'map' 객체 자체를 포함하는 새 리스트를 생성한다.
- 결과는 'map' 객체 하나만 포함하는 리스트가 된다.
- 즉, 이것은 리스트 안에 'map' 객체 하나만 있는 구조로, 원하는 정수 리스트가 아니다.
간단히 말해서, 첫 번째 방법은 입력된 문자열을 정수로 변환한 리스트를 만드는 반면, 두 번째 방법은 단일 'map' 객체를 포함하는 리스트를 만든다. 일반적으로 숫자 리스트를 생성하려면 첫 번째 방법을 사용하는 것이 올바르다.
반응형
'컴퓨터 공부 > 🐍 Python' 카테고리의 다른 글
Remove Non-alphanumeric Characters in Python (0) | 2023.12.13 |
---|---|
for문에 else문이 딸랑? (2) | 2023.12.02 |
[PYTHON] TYPEERROR: ‘UNICODE’ OBJECT DOES NOT SUPPORT ITEM ASSIGNMENT (0) | 2023.11.14 |
n진법으로 표기된 string을 10진법 숫자로 변환하기 - int 함수 (0) | 2023.02.23 |
몫과 나머지 - divmod (0) | 2023.02.23 |