コンピュータを研究に使うための私的メモ。Python、Fortran、Ubuntu、etc...

標準ライブラリでできることをメモ程度に。

文字列

raw文字列

文字列中の\○はエスケープシーケンスとして認識されてしまう。これを無効にするには文字列の先頭にr又はRをつける。ファイルパスなど「\」を多く含む文字列に便利。matplotlibでTex記法を使う場合はraw文字列を使う。
>>>print r"\usr\local\bin\test.py"
usr\local\bin\test
  • ユニコード文字列のraw文字列はurをつける。

エスケープシーケンス(特殊文字)

記述出力
\\\
%%%
\''
\""
\n改行
\t水平タブ
\0Null文字
\f改ページ
\N{NAME}ユニコードデータベース中でNAMEをもつ文字列

文字列フォーマット

%演算子を使う。
Pythonでは文字列の中に指定した書式でオブジェクトを挿し込むことができる。挿し込み処理は差し込みたい部分をコードで指定した文字列と挿し込むオブジェクトのタプルを%でつないで次のような形をとる。
>>> print u"%d月%d日の%sの予定" % (5, 4, u"太郎")
5月4日の太郎の予定
文字列フォーマットのコード
コード
%s文字列。文字列以外の場合str関数で変える文字列となる。
%d, %i10進数整数。
%f, %F10進数浮動小数点。
%e, %E10進数浮動小数点。指数表記。
%g, %G10進数浮動小数点。小数表記と指数表記のうち短いほうになる。
%x, %X16進数。
%o8進数。
%%%のエスケープ文字。
数値は%[フラグ][桁数][.精度]コードの形で記述して桁数や精度を指定できる。
フラグ
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歳です。
formatメソッドを使う(Python2.6以降)。
Python3.xから導入された新機能で2.6以降でも使える。%演算子は将来の廃止が予告されている。
埋め込みを行いたい文字列またはユニコード文字列の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ビット文字列を返す。エラー処理の方法を指定できる。

組み込み関数

文字列に対する組み込み関数。
len(string)文字列の長さを返す。ユニコード文字列でない文字列の場合、数字・アルファベット以外は正確な文字数とはならない。


モジュールのインポートをやり直す。

reload(hogehoge)

情報

管理人/副管理人のみ編集できます