[Legacy] Data/[Legacy] Python

원하는 수만큼 0을 채워넣자! zfill() 함수

Haeon 2020. 5. 3. 20:08
728x90

쓸 일이 있을까...싶은 함수지만 알아두면 좋은 함수다.

특히, 굉장히 많은 데이터 파일을 불러올 때, 그리고 해당 파일들 이름에 201901, 201902, 201903... 식으로 일련의 숫자들이 들어간다면 아마 이 함수가 필요할 것이다.

 

그렇다면, zfill()함수는 언제, 어떻게 쓸까?

예를 들어, 다음과 같은 파일들이 있다고 가정해보자

공공데이터의 일부인데 2018년 1월부터 2019년 8월까지 데이터가 있음을 확인할 수 있으며, 이걸 딱 봤을 때 직관적으로 "for문 들어간 함수를 만들어서 불러오면 되겠구나!"라는 생각이 든다.

 

문제는 다음 상황에서 발생한다.

 

for i in range(2018, 2020):
    for j in range(1, 13):
        ij = '{}{}'.format(i, j)
        print(ij)

내가 원하는 건 201801, 201802인데 20181, 20182 이런 식으로 나온다. 저 0을 어떻게 집어넣으면 좋을까?

이때의 솔루션으로 zfill() 함수가 쓰일 수 있다.

zfill() 함수는 괄호 안의 숫자만큼 zero(0)을 채워서 자릿수를 맞춰준다. 단, 주의할 점은 zfill() 함수는 문자열(str)에만 쓰일 수 있다.

 

i = 2
str(i).zfill(2)

zfill() 함수를 이용해 다시 for문을 만들어보면 다음과 같다.

 

for i in range(2018, 2020):
    for j in range(1, 13):
        j_str = str(j).zfill(2)
        ij = '{}{}'.format(i, j_str)
        print(ij, end='\t')

원하는대로 01, 02, 03... 식으로 들어간 것을 확인할 수 있다.

 

반응형
LIST