文字列処理メソッドのまとめ
pythonで文字列の処理を行うことが多々あるので, よく使うメソッドをまとめてみました.
目次
-
文字列の置換
- replace() ・・・ 文字列を置換する
-
文字列を含むかどうかの判定
- 演算子"in" ・・・ 文字列を含むかどうかの判定する
- startswith() ・・・ 始まりの文字列を判定する
- endswith() ・・・ 終端の文字列を判定する
-
文字列の位置の判定
- find() ・・・ 文字列を探し, あった場合は, 最小のインデックスを返す. なければ-1を返す
- rfind() ・・・ 文字列を探し, あった場合は, 最大のインデックスを返す. なければ-1を返す
- index() ・・・ 文字列を探し, あった場合は, 最小のインデックスを返す. なければエラーを返す
- rindex() ・・・ 文字列を探し, あった場合は, 最大のインデックスを返す. なければエラーを返す
-
文字列の構成要素の判定
- isalnum() ・・・ 文字がすべて英数文字かどうかの判定
- isalpha() ・・・ 文字がすべて英字かどうかの判定
- isdigit() ・・・ 文字がすべて数字かどうかの判定
- islower() ・・・ 大小文字の区別がある文字がすべて小文字かどうかの判定
- isspace() ・・・ 文字がすべて空白かどうかの判定
- istitle() ・・・ 文字列がタイトルケースかどうかの判定
-
大文字, 小文字の変換
- capitalize() ・・・ 最初の文字のみを大文字にする
- swapcase() ・・・ 大文字を小文字に, 小文字を大文字に変換する
- title() ・・・ 文字列をタイトルケースにする
- lower() ・・・ 文字をすべて小文字に変換する
- upper() ・・・ 文字をすべて大文字に変換する
-
文字列をリストに変換
- split() ・・・ 指定したセパレーターをもとに文字列を区切り, リストを返す
- rsplit() ・・・ 区切りはじめる方向がsplit()と逆
- splitlines() ・・・ 改行ごとに文字列を区切り, リストを返す
文字列の置換
>>> # replace()
>>> "Hello world!".replace("Hello", "Goodbye")
'Goodbye world!'
>>> "Hello world!".replace(" world", "")
'Hello!'
文字列を含むかどうかの判定
後述するメソッド(find(), index(), etc...)を使っても判定することができますが, inを使うことが望ましいようです.
>>> # 演算子"in"
>>> "world" in "Hello world!"
True
>>> "word" in "Hello world!"
False
>>> # startswith()
>>> "Hello world!".startswith("Hello")
True
>>> "Hello world!".startswith("hello")
False
>>> # endswith()
>>> "Hello world!".endswith("world!")
True
>>> "Hello world!".endswith("world")
False
文字列の位置の判定
>>> # find()
>>> "apple apple apple".find("apple")
0
>>> "apple apple apple".find("orange")
-1
>>> # rfind()
>>> "apple apple apple".rfind("apple")
12
>>> "apple apple apple".rfind("orange")
-1
>>> # index()
>>> "apple apple apple".index("apple")
0
>>> "apple apple apple".index("orange")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> # rindex()
>>> "apple apple apple".rindex("apple")
12
>>> "apple apple apple".rindex("orange")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
文字列の構成要素の判定
>>> # isalnum()
>>> "abc123".isalnum()
True
>>> "abc 123".isalnum()
False
>>> # isalpha()
>>> "abc123".isalpha()
False
>>> "abcABC".isalpha()
True
>>> # isdigit()
>>> "abc123".isdigit()
False
>>> "123456".isdigit()
True
>>> # islower()
>>> "abc123".islower()
True
>>> "abcABC".islower()
False
>>> "123456".islower()
False
>>> # isspace()
>>> " ".isspace()
True
>>> "".isspace()
False
>>> "abc 123".isspace()
False
>>> # istitle()
>>> "Hello World!".istitle()
True
>>> "Hello world!".istitle()
False
大文字, 小文字の変換
>>> # capitalize()
>>> "hello world!".capitalize()
'Hello world!'
>>> # swapcase()
>>> "HELLO world!".swapcase()
'hello WORLD!'
>>> # title()
>>> "hello world!".title()
'Hello World!'
>>> # lower()
>>> "HELLO world!".lower()
'hello world!'
>>> # upper()
>>> "HELLO world!".upper()
'HELLO WORLD!'
文字列をリストに変換
>>> # split()
>>> "apple orange banana grape".split()
['apple', 'orange', 'banana', 'grape']
>>> "apple,orange,banana,grape".split(",")
['apple', 'orange', 'banana', 'grape']
>>> "apple,orange,banana,grape".split(",", 2)
['apple', 'orange', 'banana,grape']
>>> # rsplit()
>>> "apple orange banana grape".rsplit()
['apple', 'orange', 'banana', 'grape']
>>> "apple,orange,banana,grape".rsplit(",")
['apple', 'orange', 'banana', 'grape']
>>> "apple,orange,banana,grape".rsplit(",", 2)
['apple,orange', 'banana', 'grape']
>>> # splitlines()
>>> "apple orange banana grape".rsplit()
>>> "apple\norange\nbanana\ngrape".splitlines()
['apple', 'orange', 'banana', 'grape']