본문 바로가기
etc/Python

[Python] - rjsut(), ljust(), zfill() 을 이용해 문자열 정렬하기

by saltyzun 2021. 1. 12.

파이썬에서 문자열 정렬하기(좌, 우 공백 채우기)

최근 문자열 관련 알고리즘 문제를 풀던 중 자릿수에 맞춰 문자열을 정렬해야 하는 상황이 발생했다. 문제를 해결하기 위해서 2차원 행렬의 각 행을 문자열로 만들어야 했는데, 여기서 2차원 행렬의 크기가 정해져 있다 보니 빈 공간은 모두 0으로 채워야 했던 것이다. 예를 들어, 10진수 9의 2진수 표현은 '1001' 인데 크기가 5x5인 행렬에서 이를 배열에 저장할 때는 '01001'으로 저장해야 했던 것이다. 문제를 풀 당시에는 공백문자열(" ")을 행렬의 크기에 맞춰 배열에 넣어준 뒤에, 이를 오른쪽 끝자리부터 2진수의 각 자리수로 채워주는 방식으로 해결했으나, 나중에 정답자들의 코드를 보니 rjust()라는 유용한 메소드로 이를 쉽게 해결할 수 있었다.

str.rjust(width[, fillchar])

str.ljust(width[, fillchar])

str.zfill(width)

rjust() 

rjust()는 오른쪽 정렬을 위해 사용된다. 

string = '1001'
string.rjust(5, '0') # 5자리 문자열로 만든 뒤 오른쪽 정렬하고 왼쪽부터 빈 칸에는 '0'을 채워준다.

# output : '01001'


string2 = '110'
string2.rjust(10,'#') # 10자리 문자열로 만든 뒤 오른쪽 정렬하고 왼쪽부터 빈 칸에는 '#'을 채워준다.

# output : '#######110'

ljust()

ljust()는 왼쪽 정렬을 위해 사용된다. 사용법은 rjust() 메소드와 유사하다.

string = '123'
string.ljust(5,'0')

# output : '12300'

zfill()

zfill()은 넓이값만 파라미터로 전달받아 왼쪽부터 0을 채워준다. 주의할 점은 + 혹은 - 와 같은 부호는 맨 앞자리에 써준 뒤 나머지 자리를 0으로 채운다.

string = '123'
string.zfill(5)

# output : '00123'


string2 = '+123'
string2.zfill(5)

# output : '+0123'


string3 = '-123'
string3.zfill(5)

# output : '-0123'

 

 영문설명 

docs.python.org/3/library/stdtypes.html

 

 

반응형

댓글