pythonの文字列メソッドまとめ
Pythonのstr型は次のような特徴を持っています。
- シーケンス
- イミュータブル(変更不可能、ただし変更したコピーを返す形では変換できる)
- r(right)やl(left)をメソッド名の頭につけた類似したメソッドを多く持つ
この記事ではPythonのstr型に使える操作をPythonの公式ドキュメント(4. 組み込み型 — Python 3.6.5 ドキュメント)からまとめました。これはPython3.6.5版でのものです。
シーケンス型に共通の操作
- x in s
- x not in s
これらは後述するfindメソッドやindexメソッド、countメソッドと同じ検索だが、「あるかないかが知りたいときは in 、インデックスが知りたいときはfindかindex、回数が知りたいときはcount」と使い分ける。
- s + t 連結
- s * n 繰り返し
- s[i:j:k] スライス
- len(s) 長さ
- min(s)
- max(s)
str型特有のメソッド(44個)
※このうちindex()とcount()はシーケンス型に共通ですが、メソッドなのでわかりやすさのためにこちらに入れました。
1文字列を判別するもの 13個
- endswith(suffix)
文字列の終わりがsuffixならTrue,違ければFalseを返す。
- startswith(preffix)
文字列の始まりがpreffixならTrue,違ければFalseを返す。
- isalnum()
文字列全てが英数字&1文字以上→True
- isalpha()
文字列全てが英字&1文字以上→True
- isdecimal()
文字列全てが十進数字&1文字以上→True
- isdigit()
文字列全てが数字&1文字以上→True
- isidentifier()
文字列全てが有効な識別子→True
- islower()
大小の区別がある字が存在&大文字がない→True
- isnumeric()
文字列全てが数を表す(digitより条件が緩い)&1文字以上→True
- isprintable()
文字列全てが印字可能or0文字→True
- isspace()
文字列全てが空白文字&1文字以上→True
- istitle()
タイトルケース文字列&1文字以上→True
- isupper()
大小の区別がある字が存在&小文字がない→True
2文字列を検索するもの 5個
※[ ]はその引数が任意なことを表す。
- find(substring[,start[,end]])
文字列に部分文字列substringがあったら、そのインデックスが最小のもののインデックス、なければ-1を返す。検索範囲を指定できる。
- index(substring[,start[,end]])
文字列に部分文字列substringがあったら、そのインデックスが最小のもののインデックス、なければValueErrorを返す。検索範囲を指定できる。
- rfind(substring[,start[,end]])
文字列に部分文字列substringがあったら、そのインデックスが最大のもののインデックス、なければ-1を返す。検索範囲を指定できる。
- rindex(substring[,start[,end]])
文字列に部分文字列substringがあったら、そのインデックスが最大のもののインデックス、なければValueErrorを返す。検索範囲を指定できる。
- count(substring[,start[,end]])
文字列中に部分文字列substringが重複せずに出現する回数を返す。
3文字列を除去するもの 3個
- strip([chars])
文字列の先頭および末尾からcharsを除いたコピーを返す。charsは取り除く文字列ではなく取り除く文字の集合。Ex: char=abcならaとbとcを取り除いていく。charsが省略されたら空白文字を取り除く。
- lstrip([chars])
文字列の先頭からcharsを除いたコピーを返す。charsは取り除く文字列ではなく取り除く文字の集合。Ex: char=abcならaとbとcを取り除いていく。charsが省略されたら空白文字を取り除く。
- rstrip([chars])
文字列の末尾からcharsを除いたコピーを返す。charsは取り除く文字列ではなく取り除く文字の集合。Ex: char=abcならaとbとcを取り除いていく。charsが省略されたら空白文字を取り除く。
4文字列の幅を整形するもの 4個
- center(width)
widthの長さを持つ中央寄せされた文字列を返す。
- ljust(width)
widthの長さを持つ左揃えされた文字列を返す。
- rjust(width)
widthの長さを持つ右揃えされた文字列を返す。
- zfill(width)
長さがwidthになるようにASCII'0'で左詰めした文字列のコピーを返す。
5文字列の大文字・小文字を操作するもの 6個
- upper()
全ての大小文字の区別のある文字を大文字に変換したコピーを返す。
- lower()
全ての大小文字の区別のある文字を小文字に変換したコピーを返す。
- capitalize()
文字列の先頭を大文字、残りを小文字にする
- title()
単語の先頭を大文字、残りを小文字にする。
- casefold()
大文字小文字に関係ないマッチに使えるコピーを返す。
- swapcase()
大文字が小文字に、小文字が大文字に変換された文字列のコピーを返す。
6文字列を分割するもの 5個
- partition(sep)
文字列をsepの最初の出現位置で区切り、区切り前・区切り文字そのもの・区切り後の3要素から成るタプルを返す。
- rpartition(sep)
文字列をsepの最後の出現位置で区切り、区切り前・区切り文字そのもの・区切り後の3要素から成るタプルを返す。
- split(sep)
文字列をsepを区切り文字として区切った単語のリストを返す。キーワード引数maxsplitを与えることができる。
- rsplit()
文字列をsepを区切り文字として右側から区切った単語のリストを返す。キーワード引数maxsplitを与えることができる。
- splitlines()
文字列を改行部分で分解し、各行からなるリストを返す。
7文字列を変換するもの 7個
strからbytesへ
- encode()
文字列のエンコードされたバージョンをバイト列オブジェクトとして返す。
tabからspaceへ
- expandtabs()
文字列内のタブをスペースに変えたコピーを返す。
1:1対応の変換
- maketrans()
静的メソッド。translateメソッドで使う変換テーブルを作る。
- translate(table)
与えられた変換テーブルに基づいて文字列を構成する各文字をマッピングし、マッピング後の文字列のコピーを返す。
様々な書式に変換
- format(*args,**kwargs)
文字列の書式化操作を行う。めっちゃ便利だけど規則が多いので、詳しいことは
6.1. string — 一般的な文字列操作 — Python 3.6.5 ドキュメント
の「6.1.3.1. 書式指定ミニ言語仕様」を見てください。
- format_map()
formatと似た働きだけど引数がmappingの時にいいことがあるらしい。
特定のものに置き換え
- replace(old,new)
文字列をコピーし、現れる部分文字列old全てをnewに置換して返す。
8文字列を作成するもの 1個
- join(iterable)
joinをつける文字列を区切り文字としてiterableを連結し、str型を返す。"".join(iterable)なら区切りなしになる。これはstrへの操作というよりiterableへの操作と思った方が良さそう。