1월 13, 2022

32.5 심사문제: 파일 이름을 한꺼번에 바꾸기


풀이 1.
1
2
files = input().split()
print(list(map(lambda x : '{0:03d}'.format(int(x.split('.')[0]))+ '.' + x.split('.')[1], files)))



1. split을 이용하여 . 이전의 숫자와, 이후의 문자열을 나눠줍니다
2. '{인덱스:0개수d}'.format 숫자 구조를 활용하여 숫자를 세자리수로 변환해 줍니다
3. + 를 통하여 .과, 전후의 숫자와 문자열을 연결해줍니다
4. map을 통하여 여러 입력값을 한번에 변환해줍니다



1. 예를 들어, 10.png를 '.'을 기준으로 split해주면 다음과 같은 결과가 나옵니다
print('10.png'.split('.'))
['10', 'png']


2. '{인덱스:0개수d}'.format(숫자)
숫자 개수를 맞추고 싶으면 해당 형식을 사용하면 됩니다.
'%0개수d' % 숫자   를 사용할 수도 있습니다
숫자를 지정하기 위해 int로 
'%03d' % int(x.split('.')[0])
를 사용하여도 같은 결과가 나옵니다.


풀이 2.
zfill을 사용할 수도 있습니다

1
2
files = input().split()
print(list(map(lambda x: x.split('.')[0].zfill(3)+ '.' +x.split('.')[1], files)))