Python文字列にはzfill
というメソッドがあり、左に0の数値文字列を埋め込むことができます。Pythonで数字の文字列を右にゼロで埋め込む方法は?
In : str(190).zfill(8)
Out: '00000190'
どのようにパッドを右側に置くことができますか?
Python文字列にはzfill
というメソッドがあり、左に0の数値文字列を埋め込むことができます。Pythonで数字の文字列を右にゼロで埋め込む方法は?
In : str(190).zfill(8)
Out: '00000190'
どのようにパッドを右側に置くことができますか?
はFormat Specification Mini-Languageを参照してください:
In [1]: '{:<08d}'.format(190)
Out[1]: '19000000'
In [2]: '{:>08d}'.format(190)
Out[2]: '00000190'
ヒント:文字列が二度反転させることができます。
In : acc = '991000'
In : acc[::-1].zfill(9)[::-1]
Out: '991000000'
あるいはそれ以上に簡単:zfill
メソッドを使用する前と後の
In : acc.ljust(9, '0')
Out: '991000000'
代わりに、よりポータブルな[1]と効率的な[2]の代替として、実際には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]古いPythonバージョンで[1]形式が存在しません。 Python 3.0(PEP 3101を参照)とPython 2.6以降にフォーマット指定子が追加されました。
[2]逆に2回の操作は高価です。
[2]と...ダブルリバースが遅いのが正しいのですか? – yucer
はい、ダブルリバースは遅くなります。 [2]句にはタイプミスがあります。私は*高価な*操作ではなく、*拡張*であることを意味しました。私はそれを修正します。 –
常に文字列を整数に変換し、10 **(num-length)を掛けて文字列に変換することができます。 – Douglas