4.1 string -- 一般的な文字列操作

このモジュールは、文字クラスのチェックに役立つ定数と、文字列を扱う関数を 定義しています。正規表現を使った関数については re モジュールを参照してください。

このモジュールで定義される定数は以下のとおりです。

ascii_letters
後述の ascii_lowercaseascii_uppercase を合わ せたもの。この値はロケールに依存しません。

ascii_lowercase
小文字 'abcdefghijklmnopqrstuvwxyz'。この値はロケールに依存せ ず、変更されません。

ascii_uppercase
大文字 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'。この値はロケールに依存せ ず、変更されません。

digits
文字列 '0123456789'

hexdigits
文字列 '0123456789abcdefABCDEF'

letters
後述の lowercaseuppercase を合わせた文字列。 具体的な値はロケールに依存し、locale.setlocale() が呼ばれたと きに更新されます。

lowercase
小文字として扱われる文字全てを含む文字列。 ほとんどのシステムにおいて、 これは文字列 'abcdefghijklmnopqrstuvwxyz' です。 この定義を 変更してはいけません -- upper()swapcase() に対する影響が定義されていないからです。具体的な値はロケールに依存し、 locale.setlocale() が呼ばれたときに更新されます。

octdigits
文字列 '01234567'

punctuation
"C" ロケールにおいて、句読点として扱われる ASCII 文字の文字列。

printable
印刷可能な文字で構成される文字列。これは digitsletterspunctuationwhitespace を組 み合わせたもの。

uppercase
大文字として扱われる文字全てを含む文字列。 ほとんどのシステムにおいて、 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' です。 この定義を変更してはいけま せん -- lower()swapcase() に対する影響が 定義されていないからです。 具体的な値はロケールに依存し、 locale.setlocale() が呼ばれたと きに更新されます。

whitespace
空白扱いの文字全てを含む文字列。ほとんどのシステムにおいて、これはスペ ース、タブ、改行、リターン、改頁、垂直タブです。この定義を変更しないこ と -- strip()split() に対する影響が定義され ていないからです。

このモジュールで提供されるほとんどの関数は、string オブジェクトと Unicode オブジェクトのメソッドでも定義されています。詳細は ``String メソ ッド'' (2.3.6 ) を参照のこと。このモジュールで定義される 関数は以下のとおりです。

atof( s)
リリース 2.0 以降で撤廃された仕様です。 組み込み関数 float() を使いましょう。
文 字列を浮動 小数点型の数値に変換します。文字列は Python の浮動小数点リ テ ラルの文法に 従っている必要があります。先頭に符号("+" また は "-")が付く のは構いません。この関数は、組み込み関数 float() に文字列が渡された場合と同じよう にふるまいます。

注意: 文字列が渡されたとき、内在する C ライブラリによって NaN や Infinity が返されることがあります。 これ らの値に変換される文字列がどれであるかは、完全に C ライブラリに 依存す るので、ライブラリによって異なることが知られています。

atoi( s[, base])
リリース 2.0 以降で撤廃された仕様です。 組み込み関数 int() を使いましょう。
文字 列 s を、base を基数とする整数に変換します。 文字列は1 桁以上の 数字で構成されている必要があります。先頭に符号("+" ま たは "-") が付くのは構いません。base のデフォルト値は 10。 これが 0 の場合 は、(符号を省いた後の)先頭文字によってデフォルト値 が決定します。 "0x" か "0X" なら 16、"0" なら 8、その 他の場合は 10 が 基数になります。 base が 16 の場合、先頭の "0x" や "0X" は常に受け付け られますが、必須ではありません。 この関数は、組み込み関数 int() に 文字列が渡されたときと同 じようにふるまいます。(注意: より柔軟な数値リテラ ル解釈が必要であれ ば、組み込み関数 eval() を使いましょう)

atol( s[, base])
リリース 2.0 以降で撤廃された仕様です。 組み込み関数 long() を使ういましょう。
文字列 s を、 base を基数とする long 整数に変換します。 文字列は1桁以 上の数字で構成されている必要があります。先頭に符号( "+" または "-")が付くのは構いません。 引数 baseatoi() の 場合と同じ意味。 基数が 0 の場合を除いて、文字 列末尾の "l" や "L" は認めらません。base が与えられ ないときと、この値に 10 が指定されたとき、この関数は組み込み関数 long() に文字列が渡されたときと同じように ふるまいます。

capitalize( word)
先頭文字だけ大文字にした word のコピーを返します。

capwords( s)
引数で与えられた文字列をsplit() で単語に分割し、 capitalize() で各単語の先頭文字を大文字化し、それを join() で連結します。 この関数は連続した空白文字を、スペー ス1つに置換し、先頭と末尾の空白を削除することに注意しましょう。

expandtabs( s[, tabsize])
タブを展開、すなわちタブを1つ以上のスペースに置換します。スペースの 個数は現在のコラム位置とタブ幅によって決定されます。コラム位置は文字列 中 に改行が出現する度に、0 にリセットされます。この関数は、改行以外の 非表 示文字やエスケープシーケンスを理解しません。タブ幅のデフォルト値 は 8 です。

find( s, sub[, start[,end]])
s[start:end] の中で、部分文字列 sub が 完全に含まれるもののうち、最初に見つかった位置を s のインデック スで返す。見つからなかった場合は -1 を返す。 startend のデフォルト値、および、負数が与えられた場合の 解釈はスライ スと同じ。

rfind( s, sub[, start[, end]])
find() と同じですが、最後に見つかったもののインデックスを返 します。

index( s, sub[, start[, end]])
find() と同じですが、部分文字列が見つからなかったときに ValueError を発生させます。

rindex( s, sub[, start[, end]])
rfind() と同じですが、部分文字列が見つからなかったときに ValueError を発生させます。

count( s, sub[, start[, end]])
s[start:end] の中で、部分文字列 sub が (重ならずに)出現する回数を返します。startend のデフォ ルト値、および、負数が与えられた場合の 解釈はスライスと同じです。

lower( s)
大文字を小文字に変換した、s のコピーを返します。

maketrans( from, to)
translate()regex.compile() に渡して、 from に含まれる各文字を、to の同じ位置にある文字に置換する ような変換テーブルを返します。fromto は同じ長さでな ければいけません。

警告: lowercaseuppercase から得られる文字 列を、引数にしてはいけません。ロケールによっては、これらは長さが異なる。 大文字小文字の変換には、常に lower()upper() を使いましょう。

split( s[, sep[, maxsplit]])
文字列 s に含まれる単語を、リストにして返します。 第 2 引数 sep が指定されなかった場合と None が指定された場合 には、 各単語は任意の空白(スペース、タブ、改行、リターン、改頁)で 区切られ ます。第 2 引数 sep が指定され、かつ、それが None でなけ れば、その文字列が単語の区切りになる。返されるリストの要素数は、文字列 内で重複しない区切り文字列の数より、1個多くなります。 第 3 引数 maxsplit のデフォルト値は 0。 この引数が 0 以外の場合、多くとも maxsplit 箇所で区切り、残りの文字列は、リストの最後の要素として 返されます(したがって、リストは多くとも maxsplit+1 個の 要素を持ちます)。

splitfields( s[, sep[, maxsplit]])
この関数は split() と同じようにふるまいます(昔は split() は引数1つの場合でのみ使われ、 splitfields() は引数2つの場合でのみ使われていました)。

join( words[, sep])
単語のリストまたはタプルの要素を、sep を間に入れて連結します。 sep のデフォルト値はスペース1個。 "string.join(string.split(s, sep), sep)" は、常 に s です。

joinfields( words[, sep])
この関数は join() と同じふるまいをします(昔は、 join() は引数1つの場合でのみ使われ、joinfields() は引数2つの場合でのみ使われていました)。 オブジェクトには joinfields() メソッドがないことに注意してください。 join() メソッドを使いましょう。

lstrip( s[, chars])
先頭の文字を取り除いた文字列のコピーを返します。chars が与えられない場合や、chars の値が None の場合、先頭の空白を取り除きます。chars が与えられ、その値が None でない場合、このメソッドを呼んだ文字列から、chars に含まれる文字を取り除きます。 chars は文字列でなくてはいけません。 バージョン2.2.3 以降で変更された 仕様: chars パラメータを追加。 初期の 2.2 バージョンでは、versionschars パラメータを渡せない

rstrip( s[, chars])
末尾の文字を取り除いた文字列のコピーを返します。chars が与えられない場合や、chars の値が None の場合、末尾の空白を取り除きます。chars が与えられ、その値が None でない場合、このメソッドを呼んだ文字列から、chars に含まれる文字を取り除きます。 chars は文字列でなくてはいけません。 バージョン2.2.3 以降で変更された 仕様: chars パラメータを追加。 初期の 2.2 バージョンでは、versionschars パラメータを渡せない

strip( s[, chars])
先頭と末尾の文字を取り除いた文字列のコピーを返します。chars が与えられない場合や、chars の値が None の場合、先頭と末尾の空白を取り除きます。chars が与えられ、その値が None でない場合、このメソッドを呼んだ文字列から、chars に含まれる文字を取り除きます。 chars は文字列でなくてはいけません。 バージョン2.2.3 以降で変更された 仕様: chars パラメータを追加。 初期の 2.2 バージョンでは、versionschars パラメータを渡せない

swapcase( s)
s の大文字と小文字を入れ替えたものを返します。

translate( s, table[, deletechars])
s の中から、(もし指定されていれば)deletechars に含まれる 文字を削除し、table を使って文字を入れ替えたものを返します。 table は 256 文字からなる文字列で、各文字の位置が、置換前の文字 コードに対応します。

upper( s)
s に含まれる小文字を大文字に置換して返します。

ljust( s, width)
rjust( s, width)
center( s, width)
これらの関数は、与えられた文字列幅の中で、それぞれ左寄せ、右寄せ、中央 寄せします。これらが返す文字列は、少なくとも width 文字分の長さが あり、s の右側、左側、または両側がスペースで埋まっている。文字列 が切られることはない。

zfill( s, width)
数値文字列の左側を、与えられた幅に達するまで 0 で埋めます。符号で始まる 場合も、正しく処理されます。

replace( str, old, new[, maxreplace])
s 内の部分文字列 old を全て new に置換したものを返し ます。 maxreplace が指定された場合、最初に見つかった maxreplace 個分だけ置換します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。