Python 공백없이 입력받아 list만들기: strip(), rstrip(), lstrip() 사용법

2021. 4. 9. 01:30dev

공백이 포함된 정수형 리스트를 입력받을 때는 split()으로 구분하면 되었는데, 공백없이 연속으로 입력받는 경우에 단순히 split()을 사용하지 않았더니 오류가 났다. 

 

문제 예시

예제) 정수 N을 입력받아 거꾸로 출력하는 프로그램을 작성하시오

입력 예시) 123456

출력 예시) 654321

import sys
data = list(map(int,sys.stdin.readline()))
for _ in range(len(data)):
  print(data.pop(), end='')

readline()은 한줄씩(라인단위로) 읽어오는 함수이기 때문에 끝에 개행문자 \n이 포함되어 있다

따라서 list에 원하지 않는 개행문자가 들어가서 에러가 난것이다.

 

수정한 코드는 다음과 같다.

import sys
data = list(map(int,sys.stdin.readline().rstrip()))
for _ in range(len(data)):
  print(data.pop(), end='')

오른쪽 끝의 개행문자를 제거하기 위해 rstrip() 함수를 사용해주었다. 

 

공백 제거함수 

문자열에서 공백을 제거하는 함수들은 크게 세가지이다. 

  • lstrip: 문자열에 왼쪽 공백이나, 인자가된 문자열의 모든 조합을 제거 
  • rstrip: 문자열에 오른쪽 공백이나, 인자가된 문자열의 모든 조합을 제거
  • strip: 양쪽 문자열에 공백이나, 인자가된 문자열의 모든 조합을 제거 
print(' test1'.lstrip())
-------------------------
test1

print('test1'.lstrip('te'))
-------------------------
st1

print('test2 '.rstrip())
-------------------------
test2

print('test2'.rstrip('t2'))
-------------------------
tes

print(' test3 '.strip())
-------------------------
test3

print('test3'.strip('t3'))
-------------------------
es