「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