컴퓨터 공부/🐍 Python

list(map(int, input().strip().split())) 와 [map(int, input().strip().split())] 의 차이

letzgorats 2023. 11. 21. 11:53

문득 알고리즘 문제를 풀다가

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' 객체를 포함하는 리스트를 만든다. 일반적으로 숫자 리스트를 생성하려면 첫 번째 방법을 사용하는 것이 올바르다.

반응형