Python 3で辞書を使って文字列をフォーマットする方法
Pythonでは、辞書(dict)を活用して文字列への値の埋め込み(補間)を行うことができます。この構文では、%と変換文字の間の括弧内に、辞書のキー名を指定します。例えば、キー'cost'に格納された浮動小数点数を$xxxx.xxの形式で表示したい場合は、表示したい位置に'$%(cost).2f'と記述します。
辞書を使った文字列フォーマットの基本例
以下は、辞書を使った文字列フォーマットで、文字列と数値を同時に補間・整形する例です。
>>> print('%(language)s has %(number)03d quote types.' % {'language': "Python", "number": 2})
Python has 002 quote types.フォーマット指定子の解説
- %(language)s:キー
languageの値を文字列として挿入します。 - %(number)03d:キー
numberの値を整数として挿入し、0埋めで3桁に揃えます。そのため「2」が「002」と表示されます。
このように、複数の値を1つの辞書にまとめて渡せるため、可読性が高く、順番を気にせずにフォーマットできるのが利点です。
より詳しく学ぶには
printf形式の文字列フォーマットやその演算子について、さらに詳しく知りたい方は、公式ドキュメントを参照してください。
https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting
補足:より現代的な代替手段
%によるフォーマットは「printf形式」と呼ばれる古典的な手法ですが、Python 3ではより柔軟な方法も用意されています。
- str.format()メソッド:
'{language} has {number:03d} quote types.'.format(language='Python', number=2) - f文字列(f-string):Python 3.6以降で利用可能。
f"{language} has {number:03d} quote types."
特にf文字列は簡潔で高速なため、新しいコードではこちらが推奨されることが多いです。ただし、既存コードの保守やログ出力などでは%形式も依然として広く使われています。
-
Pythonで文字列から文字を削除する方法|スライス・replace・正規表現の使い分け
Pythonで文字列から特定の文字を削除したい場面はよくあります。目的に応じていくつかの方法があるため、それぞれの特徴と使い方を解説します。 特定のインデックスの文字を削除する(スライス) 文字列の中から指定した位置(インデックス)の1文字だけを削除したい場合は、文字列スライスを使うのが最もシンプルです。削除したい位置の前後をつなぎ合わせることで、その文字だけを取り除いた新しい文字列を作成できます。 >>> s = Hello World >>> s[:4] + s[5:] Hell World この例では、インデックス4にある「o」を除外し、それ以外の部
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます