我有四个或更少的数字,例如8
或12
或197
。我想把0加在这个数字的前面,直到它长4位,例如0008
或0012
或0197
。在Python中最简单的方法是什么?什么是最多" Pythonic"?
我可以做一系列if语句,如下所示:
if len(number) == 1:
number = '000' + number
...
但我觉得有更优雅的方式。
答案 0 :(得分:14)
有几种Pythonic方法,我非常喜欢Python 3.6中的新f字符串:
>>> f'{5:04}'
'0005'
这使用字符串格式化minilanguage:
>>> five = 5
>>> f'{five:04}'
'0005'
第一个零表示填充,4表示宽度:
>>> minimum_width = 4
>>> filler = "0" # could also be just 0
>>> f'{five:{filler}{minimum_width}}'
'0005'
接下来使用内置格式函数:
>>> format(5, "04")
'0005'
>>> format(55, "04")
'0055'
>>> format(355, "04")
'0355'
另外,使用minilanguage的字符串格式方法:
>>> '{0:04}'.format(5)
'0005'
同样,规范出现在:,0表示填充零,4表示宽度为4。
最后,str.zfill方法是为此定制的,可能是最快的方法:
>>> str(5).zfill(4)
'0005'