将零填充到字符串中的最理想方式
什么是最符合毕达斯理论的方法来为一个数字串的左边填充零,也就是说,使数字串有一个特定的长度?
1288
14
什么是最符合毕达斯理论的方法来为一个数字串的左边填充零,也就是说,使数字串有一个特定的长度?
弦乐。
而对于数字。
字符串格式化文档.
只需使用字符串对象的[rjust][1]方法。
这个例子将制作一个10个字符的字符串,根据需要进行填充。
[1]: http://docs.python.org/2/library/stdtypes.html#string-methods
除了
zfill
,你可以使用一般的字符串格式化。字符串格式化和f-strings的文档。
这在Python 2和Python 3中都适用。
用于Python 3.6+的f-strings。
如果你想反过来。
str(n).zfill(width)
将适用于string
s,int
s,float
s...。 并且兼容Python 2.x和3.x。对于来这里了解的人来说,并不是简单的回答。 我做这些特别是为了时间串。
`gt;##用什么方法将一个数字字符串向左加零,即数字字符串有一个特定的长度?
[
str.zfill
][1]就是专门用来实现这个目的的。请注意,它是专门用来处理数字字符串的,并将 "+"或"-"移到字符串的开头。
这里是关于 "str.zfill "的帮助。
业绩
这也是其他方法中性能最好的。
为了最好的比较苹果与苹果之间的
%
方法(注意其实比较慢),否则会预先计算。实施
经过一番研究,我在[
Objects/stringlib/transmogrify.h
][2]中找到了zfill
方法的实现。<!--语言。 c -->
让我们'来看看这段C代码。
它首先对参数进行位置解析,也就是说它不允许使用关键字参数。
然后它检查它的长度是否相同或更长,在这种情况下,它返回字符串。
zfill
调用pad
(pad
函数也被ljust
、rjust
和center
调用)。 这基本上是将内容复制到一个新的字符串中,并填充填充物。<!--语言。 c -->
在调用
pad
后,zfill
将前面的+
或-
移到字符串的开头。需要注意的是,并不要求原来的字符串是数字型的。
[1]: https://docs.python.org/3/library/stdtypes.html#str.zfill [2]: https://github.com/python/cpython/blob/master/Objects/stringlib/transmogrify.h
所有激动人心的细节,请看打印文档!
针对Python 3.x(7.5年后)的更新
最后一行现在应该是。
也就是说,
print()
现在是一个函数,而不是一个语句。请注意,我仍然喜欢老式的printf()
风格,因为,IMNSHO,它读起来更好,而且,嗯,我从1980年1月就开始使用这种符号。有些东西......老狗......有些东西......新招数。当使用Python
>=3.6
时,最简洁的方法是使用f-strings和字符串格式规范。<!-->
<!-->
对于保存为整数的邮政编码。
快速的时间比较。
我'做了不同的重复测试。 差异不大,但在所有的测试中,"zfill "方案是最快的。
另一种方法是使用列表理解法,用条件检查长度。 下面是一个示范。
你也可以重复"0",将其前置到
str(n)
,然后得到最右边的宽度片。 快速而肮脏的小表达式。