標準ライブラリでできることをメモ程度に。
文字列中の\○はエスケープシーケンスとして認識されてしまう。これを無効にするには文字列の先頭にr又はRをつける。ファイルパスなど「\」を多く含む文字列に便利。matplotlibでTex記法を使う場合はraw文字列を使う。
>>>print r"\usr\local\bin\test.py" usr\local\bin\test
- ユニコード文字列のraw文字列はurをつける。
Pythonでは文字列の中に指定した書式でオブジェクトを挿し込むことができる。挿し込み処理は差し込みたい部分をコードで指定した文字列と挿し込むオブジェクトのタプルを%でつないで次のような形をとる。
数値は%[フラグ][桁数][.精度]コードの形で記述して桁数や精度を指定できる。
>>> print u"%d月%d日の%sの予定" % (5, 4, u"太郎") 5月4日の太郎の予定文字列フォーマットのコード
| コード | |
|---|---|
| %s | 文字列。文字列以外の場合str関数で変える文字列となる。 |
| %d, %i | 10進数整数。 |
| %f, %F | 10進数浮動小数点。 |
| %e, %E | 10進数浮動小数点。指数表記。 |
| %g, %G | 10進数浮動小数点。小数表記と指数表記のうち短いほうになる。 |
| %x, %X | 16進数。 |
| %o | 8進数。 |
| %% | %のエスケープ文字。 |
| フラグ | |
|---|---|
| 0 | 桁数に満たない場合は0で埋める。 |
| - | 左寄せにする。 |
| スペース | 正の数の場合先頭にスペースを入れる。 |
| + | 数値に符号をつける。 |
>>> num = 12.45 >>> "%+10.2f" % num #小数点2桁で10桁分のスペースに符号付き。 ' 12.45' >>> "%.5f" % num #小数点以下5桁 '12.45000' >>> "%.4e" % num #指数表記。小数部分は小数点4桁 '1.2450e+01'挿し込むオブジェクトに辞書を指定するとキーによって埋め込む位置を指定できる。%(キー)[フラグ][桁数][.精度]コードの形で指定する。
>>> d = {"name":u"太郎", "age":16, "country":u"日本"}
>>> print u"%(name)sは%(age)d歳です。" % d
太郎は16歳です。
Python3.xから導入された新機能で2.6以降でも使える。%演算子は将来の廃止が予告されている。
埋め込みを行いたい文字列またはユニコード文字列のformatメソッドを呼び出してその引数に埋め込むオブジェクトを指定する。
埋め込みを行いたい文字列またはユニコード文字列のformatメソッドを呼び出してその引数に埋め込むオブジェクトを指定する。
>>> template = "{0} {1} {0}" #0番目の引数が{0}に1番目の引数が{1}に埋め込まれる。
>>> template.format("Spam", "Ham")
'Spam Ham Spam'
>>> template = "{food1} {food2}" #英数字を{}で囲むとキーワード引数を置換する。
>>> template.format(food1 = "Spam", food2 = "Ham")
'Spam Ham'
>>> d = {"name":u"小麦粉", "weight":12.5}
>>> template = u"{0[name]}は{0[weight]:.3f}kgです。" #辞書型を引数にして[]でキー指定できる。:の後に桁や精度のフォーマットが指定できる。
>>> template.format(d)
小麦粉は12.500kgです。
| find(検索文字列[, 開始[, 終了]]) | 引数にした文字列を検索し最初に見つかったインデックスを返す。見つからなかったら-1を返す。 |
|---|---|
| rfind(検索文字列[, 開始[, 終了]]) | 引数にした文字列を後ろから検索し最初に見つかったインデックスを返す。見つからなかったら-1を返す。 |
| replace(string, string) | 検索文字列を置換文字列で置換した文字列を返す。 |
| split([区切り文字列 [,分割数]]) | 文字列を区切り文字列で区切ったリストを返す。分割数を指定すると先頭から指定したインデックスまで分割する。区切り文字を指定しない場合は空白文字を区切り文字とする。 |
| rsplit([区切り文字列 [,分割数]]) | 文字列を区切り文字列で区切ったリストを返す。分割数を指定すると後ろから指定したインデックスまで分割する。区切り文字を指定しない場合は空白文字を区切り文字とする。 |
| join(シーケンス) | 文字列を要素とするシーケンス中の要素を対象の文字列で連結した文字列を返す。 |
| index(検索文字列[, 開始[, 終了]]) | findと同じ。見つからなかったらValueErrorを返す。 |
| rindex(検索文字列[, 開始[, 終了]]) | rfindと同じ。見つからなかったらValueErrorを返す。 |
| endswith(検索文字列[, 開始[, 終了]]) | 文字列が検索文字列で終わっているときはTrue、そうでない場合はfalseを返す。 |
| startswith(検索文字列[, 開始[, 終了]]) | 文字列が検索文字列で始まるときはTrue、そうでない場合はfalseを返す。 |
| strip([削除文字列]) | 文字列の先頭、末尾から削除文字列を削除した文字列を返す。指定しないときは空白文字を削除する。 |
| lstrip([削除文字列]) | 文字列の先頭から削除文字列を削除した文字列を返す。指定しないときは空白文字を削除する。 |
| rstrip([削除文字列]) | 文字列の末尾から削除文字列を削除した文字列を返す。指定しないときは空白文字を削除する。 |
| upper() | 文字列の英字小文字を大文字にした文字列を返す。 |
| lower() | 文字列の英字大文字を小文字にした文字列を返す。 |
| center(幅[, 埋め合わせ文字列]) | 文字列長が指定した幅に満たない場合空白で埋めて中央寄せした文字列を返す。埋め合わせる文字列も指定できる。 |
| ljust(幅[, 埋合わせ文字列]) | 文字列長が指定した幅に満たない場合空白で埋めて左寄せした文字列を返す。埋め合わせる文字列も指定できる。 |
| rjust(幅[, 埋合わせ文字列]) | 文字列長が指定した幅に満たない場合空白で埋めて右寄せした文字列を返す。埋め合わせる文字列も指定できる。 |
| decode([文字コード[, エラー処理]]) | 指定した文字コードの8ビット文字列を変換したユニコード文字列を返す。エラー処理の方法を指定できる。 |
| encode([文字コード[, エラー処理]]) | 指定した文字コードに変換した8ビット文字列を返す。エラー処理の方法を指定できる。 |

最新コメント