鉴于。
a = 1
b = 10
c = 100
如何为所有少于两位数的数字显示前导零?
就是说。
01
10
100
您可以使用[str.zfill
][1]。
print str(1).zfill(2)
print str(10).zfill(2)
print str(100).zfill(2)
版画。
01
10
100
[1]: https://docs.python.org/2/library/stdtypes.html#str.zfill
在Python >= 3.6中,你可以通过使用新的f-字符串来简洁地实现这一功能。
f'{val:02}'
打印变量名val
,其fill
值为0
,[width
][2]值为2
。
对于您的具体示例,您可以在一个循环中很好地完成这个操作。
a, b, c = 1, 10, 100
for val in [a, b, c]:
print(f'{val:02}')
其中打印。
01
10
100
关于f弦的更多信息,请看[PEP 498][3],那里介绍了f弦。
1:
[2]: https://docs.python.org/3/library/string.html#grammar-token-width [3]: https://www.python.org/dev/peps/pep-0498/
俾斯麦式的方法。
str(number).rjust(string_width, fill_char)
这样一来,如果原始字符串的长度大于string_width,就会被不变地返回。 例如:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
}
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
结果:
01
10
100
01
10
100
使用一个格式字符串 - http://docs.python.org/lib/typesseq-strings.html
比如说。
python -c 'print "%(num)02d" % {"num":5}'
我就是这样做的。
str(1).zfill(len(str(total)))
基本上,zfill 是取你想要添加的前导零的数量,所以很容易取一个最大的数字,将它变成一个字符串,然后得到长度,就像这样。
Python 3.6.5 (默认,2018年5月11日,04:00:52) linux上的[GCC 8.1.0]。 输入"帮助","版权","信用"。 或"许可证"。 获取更多信息。 >>>。 总计 = 100 >>>.zfill(len(str(total)) print(str(1).zfill(len(str(total)))) 001 >>> 总计=1000 >>>.zfill(len(str(total)) print(str(1).zfill(len(str(total)))) 0001 >>> 总计=10000 >>>.zfill(len(str(total)) print(str(1).zfill(len(str(total)))) 00001 >>>。
df['Col1']=df['Col1'].apply(lambda x: '{0:0>5}'.format(x)) (5是总数字)
我用了这个链接。 http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/