「Pythonで文字列を操作?したいなー。どうやるんだっけ。」とふと思った時に覗ける様、学んだ文字列のメソッドをメモしておきます。
もくじ
文字列.upper()
・・・文字列を全て大文字にして返す。
s = "Hello python" print(s.upper()) >>>HELLO PYTHON
文字列.lower()
・・・文字列を全て小文字にして返す。
s = "Hello python" print(s.lower()) >>>hello python
文字列.title()
・・・各単語毎に先頭を大文字に、それ以外を小文字にして返す。
s = "hello python" print(s.title()) >>>Hello Python s = "HELLO PYTHON" title print(s.title()) >>>Hello Python
文字列.capitalize()
・・・文字列の先頭を大文字にそれ以外を小文字にして返す。
s = "Hello Python" print(s.capitalize()) >>>Hello python s = "HELLO PYTHON" print(s.capitalize()) >>>Hello python
ピンポイントで文字列の大きさを調整したい場合はupper,lowerメソッドを使って行います。
s = "hello PYTHON" print(s.capitalize()) Hello python #Hだけ大文字にして、他は何も変えたく無い print(s[0].upper() + s[1:]) >>>Hello PYTHON
文字列.swapcase()
・・・大文字を小文字に、小文字を大文字に変換して返す。
s = "hello PYTHON" print(s.swapcase()) >>>HELLO python
文字列.find(検索したい要素)
・・・検索したい要素を左側から探し、一番初めに出てくる要素番号を返す。
s = "hello PYTHON" #hの場所を探す print(s.find("h")) >>>0 #pの場所を探す → 小文字のpが要素に入っていない為、-1が返ってくる。 print(s.find("p")) >>>-1 print(s.find("P")) >>>6
※検索したい要素が、文字列内に無い場合は”-1″が返ってきます。
文字列.rfind(検索したい要素)
・・・検索したい要素を右側から探し、一番初めに出てくる要素番号を返す。
s = "hello python" #rfindでhの場所を探す print(s.rfind("h")) >>>9 #rfindでoの場所を探す print(s.rfind("o")) >>>10 #rfindでeの場所を探す print(s.rfind("e")) >>>1
文字列.count(数えたい要素)
・・・数えたい要素の要素数をカウントして返す。
s = "hello python PYTHON" #oの要素数を数える -> 大文字と小文字は別で認識している模様 print(s.count("o")) >>>2
全ての要素数をカウントしたい場合は、uppper,lowerメソッドを使って、大文字・小文字どちらかに統一してからカウントをかける。
s = "hello python PYTHON" #oの要素数を数える print(s.lower().count("o")) >>>3
文字列.startswith(確かめたい要素 or 文字列)
・・・文字列の先頭に、確かめたい要素、もしくは文字列があるかどうかをTrue,Falseで返す。
True と Falseはbool型と言い、真偽を表します。
変数の型については、【Python入門編】変数の使い方を詳しくメモしていくに記載しておりますので、ご確認ください。
s = "hello python PYTHON" #hから始まるか確認 print(s.startswith("h")) >>>True #helloから始まるか確認 print(s.startswith("hello")) >>>True #pythonから始まるか確認 print(s.startswith("python")) >>>False
文字列.endswith(確かめたい要素 or 文字列)
・・・文字列の最後に、確かめたい要素、もしくは文字列があるかどうかをTrue,Falseで返す。
s = "hello python PYTHON" #Nで終わるか確認 print(s.endswith("N")) >>>True #PYTHONで終わるか確認 print(s.endswith("PYTHON")) >>>True #helloで終わるか確認 print(s.endswith("python")) >>>False
文字列.strip()
・・・最初と最後にある空白を取り除いた文字列を返す。
s = " hello python " print(s) >>> hello python print(s.strip()) >>>hello python
文字列.lstrip()
・・・最初にある(左側の)空白を取り除いた文字列を返す。
文字列.strip()
・・・最後にある(右側の)空白を取り除いた文字列を返す。
s = " hello python " print(s) >>> hello python #左側の空白を取り除く print(s.lstrip()) >>>hello python #右側の空白を取り除く print(s.rstrip()) >>> hello python
※ちょっと分かりづらいですが、rstrip()で右側のスペースがなくなっています。
文字列.replace(検索したい文字列,置き換えたい文字列,置き換えたい回数)
・・・検索したい文字列を、置き換えたい文字列へ置換して文字列を返す。
s = "hello python" # hello -> こんにちは へ置き換える print(s.replace("hello","こんにちは")) >>>こんにちは python #最初のl を Lに置き換える print(s.replace("l","L",1)) >>>heLlo python
文字列.center(文字数)
・・・文字列を指定した文字数の中央に寄せる
s = "hello" #20文字の範囲で中央に寄せる print(s.center(20)) >>> hello
文字列.rjust(文字数)
・・・文字列を指定した文字数の右に寄せる
文字列.ljust(文字数)
・・・文字列を指定した文字数の左に寄せる
s = "hello" #指定した20文字の範囲内で右に寄せる print(s.rjust(20)) >>> hello #指定した20文字の範囲内で左に寄せる print(s.ljust(20)) >>>hello
※分かりづらいですが、helloの右には15文字分のスペースがあります。
文字列.split(区切り文字)
・・・指定した区切り文字毎に要素を分割し、リストとして返す。
s = "he ll o py tho n" #スペースで区切る print(s.split(" ")) >>>['he', 'll', 'o', 'py', 'tho', 'n']
文字列.splitlines()
・・・指定した改行(文字)毎に要素を分割し、リストとして返す。
s = """1 Hello 2 Python""" print(s) >>>1 Hello 2 Python #改行毎に分割し、リストとして返す print(s.splitlines()) >>>['1 Hello', '2 Python']
文字列.join(リスト)
・・・リストを文字列で連結させて返す。
#リストl を ssで連結する print(ss.join(l)) >>>he-ll-o-py-tho-n #リストl を連結する print("".join(l)) >>>hellopython
文字列.isalnum()
・・・文字列が全て英数字かどうか確認し、ブール値で返す。
s = "hello python 3" ss = "hellopython3" sss = "ハローpython3!" print(s.isalnum()) >>>False print(ss.isalnum()) >>>True print(sss.isalnum()) >>>False
文字列.isalpha()
・・・文字列が全て英字かどうか確認し、ブール値で返す。
s = "hello python" ss = "hellopython3" sss = "ハローpython3!" ssss = "hellopython" print(s.isalpha()) >>>False print(ss.isalpha()) >>>False print(sss.isalpha()) >>>False print(ssss.isalpha()) >>>True
文字列.isdigit()
・・・文字列が全て数字かどうか確認し、ブール値で返す。
s = "hello python" ss = "hellopython3" sss = "12345" print(s.isdigit()) >>>False print(ss.isdigit()) >>>False print(sss.isdigit()) >>>True
※int.isdigit()を実行すると、AttributeError: ‘int’ object has no attribute ‘isdigit’ が出現します。
文字列.islower()
・・・数字を除く文字列が全て小文字かどうか確認し、ブール値で返す。
s = "hello python" ss = "hellopython3" sss = "hello PYTHON" print(s.islower()) >>>True print(ss.islower()) >>>True print(sss.islower()) >>>False
文字列.isspace()
・・・文字列が全て空白かどうか確認し、ブール値で返す。
s = "hello python" ss = " " print(s.isspace()) >>>False print(ss.isspace()) >>>True
文字列.istitle()
・・・文字列の先頭と空白後の先頭文字全てが大文字となっており、その他は小文字かどうか確認し、ブール値で返す。
s1 = "hello python" s2 = "Hellopython" s3 = "Hello python" s4 = "Hello Python" s5 = "Hello PYTHON" print(s1.istitle()) >>>False print(s2.istitle()) >>>True print(s3.istitle()) >>>False print(s4.istitle()) >>>True print(s5.istitle()) >>>False