How to pad a numeric string with zeros to the right in Python?

后端 未结 3 1224
借酒劲吻你
借酒劲吻你 2020-12-30 23:34

Python strings have a method called zfill that allows to pad a numeric string with zeros to the left.

In : str(190).zfill(8)
Out: \'00000190\'
<         


        
相关标签:
3条回答
  • 2020-12-31 00:08

    As maybe a alternative more portable [1] and efficient [2], actually you can just use str.ljust.

    In [2]: '190'.ljust(8, '0')
    Out[2]: '19000000'
    
    In [3]: str.ljust?
    Docstring:
    S.ljust(width[, fillchar]) -> str
    
    Return S left-justified in a Unicode string of length width. Padding is
    done using the specified fill character (default is a space).
    Type:      method_descriptor
    

    [1] format is not present on old python versions. format specifier was added since Python 3.0 (see PEP 3101) and Python 2.6.

    [2] reverse twice is an expensive operation.

    0 讨论(0)
  • 2020-12-31 00:30

    See Format Specification Mini-Language:

    In [1]: '{:<08d}'.format(190)
    Out[1]: '19000000'
    
    In [2]: '{:>08d}'.format(190)
    Out[2]: '00000190'
    
    0 讨论(0)
  • 2020-12-31 00:30

    Hint: The string can be inverted twice: before and after using the zfill method:

    In : acc = '991000'
    
    In : acc[::-1].zfill(9)[::-1]
    Out: '991000000'
    

    Or even more easier:

    In : acc.ljust(9, '0')
    Out: '991000000'
    
    0 讨论(0)
提交回复
热议问题