Pythonのzfill()メソッドとは?文字列の先頭をゼロ埋めする方法を解説
Pythonのzfill()メソッドとは
Pythonのzfill()メソッドは、文字列の左側(先頭)をゼロ「0」で埋めるための組み込みメソッドです。桁数を揃えたい場合や、ID・日付・数値コードなどを一定のフォーマットに整形したいときに非常に便利です。
基本的な使い方は以下のとおりです。引数には最終的な文字列の長さ(幅)を指定します。
>>> '25'.zfill(6) '000025'
この例では、元の文字列「25」が2文字なので、指定した幅6になるまで先頭にゼロが4つ追加され、「000025」という結果が得られます。
zfill()メソッドのポイント
- 引数に指定した幅より元の文字列が短い場合のみ、ゼロでパディングされる
- 元の文字列がすでに指定した幅以上の場合は、そのまま返される
- 符号付きの数値文字列(例:「-25」)の場合も、符号を残したままゼロ埋めされる
rjust()メソッドを使った代替方法
同じ結果を得る方法として、文字列クラスのrjust(width[, fillchar])メソッドもあります。このメソッドは文字列を右寄せし、左側を指定した埋め込み文字(fillchar)で埋めます。デフォルトの埋め込み文字は半角スペースですが、「0」を指定することでゼロ埋めが可能です。
>>> '25'.rjust(6, '0') '000025'
zfill()との違いは、埋め込む文字を自由に選べる点です。たとえばスペースや他の記号でパディングしたい場合はrjust()が適しています。
文字列フォーマットを使った方法
さらに、Pythonの文字列フォーマット機能を利用してゼロ埋めを実現することもできます。
>>> print "%06d" % 25 '000025'
なお、上記はPython 2系の古い書き方です。現在主流のPython 3では、f文字列やformat()メソッドを使うのが一般的です。
>>> f"{25:06d}"
'000025'
>>> "{:06d}".format(25)
'000025'まとめ
文字列の先頭をゼロで埋める方法は主に3つあります。
- zfill(幅):シンプルにゼロ埋めだけを行いたい場合に最適
- rjust(幅, 埋め込み文字):ゼロ以外の文字でパディングしたい場合に有効
- 文字列フォーマット:数値と組み合わせて柔軟に整形したい場合に便利
用途に応じてこれらの方法を使い分けることで、可読性の高い整形済み文字列を簡単に作成できます。
-
Python文字列の最大長はどれくらい?メモリと環境による上限を解説
Python文字列の最大長は環境によって決まるPythonにおける文字列の最大長は、理論上の上限よりも、実際に利用できるメモリ容量とPythonの実行環境(32ビットか64ビットか)によって決まります。言語仕様上、文字列の長さは Py_ssize_t 型で管理されており、64ビット環境では最大約9.2×1018(263-1)文字まで扱えることになっています。しかし、現実的にはこの上限に達する前にメモリが足りなくなります。64ビット環境の場合64ビット版のPythonを搭載し、64GBのメモリを備えたマシンであれば、約63GB程度の巨大な文字列でも十分に扱うことが可能です。さらにメモリを増設すれ
-
【Python入門】最も効率的な文字列連結の方法とは?「+」「+=」「join()」の使い分けを解説
文字列変数に別の文字列を追加(連結)するには、+ または += 演算子を使うのが最も良い方法です。コードの可読性が高く、処理速度も速いためです。この2つの演算子はほぼ同じ速度で動作します。また、2つの文字列を扱うだけであれば、append() を使うこともできます。 一方で、文字列のリストをまとめて連結したい場合に推奨されるのは、join() メソッドです。join() は文字列のリストを受け取り、それらを一括して連結できるため、このようなケースでは最も読みやすく効率的な書き方になります。 「+」/「+=」を使った基本的な文字列連結 短い文字列や少数の文字列を連結するだけであれば、シンプルに