파이썬에서 문자열 정렬하기(좌, 우 공백 채우기)
최근 문자열 관련 알고리즘 문제를 풀던 중 자릿수에 맞춰 문자열을 정렬해야 하는 상황이 발생했다. 문제를 해결하기 위해서 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
반응형
'etc > Python' 카테고리의 다른 글
[Python3] - RecursionError: maximum recursion depth exceeded in comparison (0) | 2021.01.10 |
---|---|
[Python] - 지능형리스트(List Comprehension)로 리스트 만들기 (0) | 2020.11.15 |
[Python] - map() 함수 (0) | 2020.11.06 |
댓글