はじめに
Pythonの文字列で利用できるメソッドのまとめメモ。
新しく学べば随時アップデートしていきます。
検索系メソッド
find()メソッド
文字列の先頭から検索したい文字列を探し、最初に見つかった位置(0から始まるインデックス)を返す。
見つからなかった場合は−1を返す 。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。
# 文字列sからある文字列を検索する。
s.find(検索したい文字列,開始インデックス,終了インデックス)
s = 'This is a string.'
# 文字列先頭から末尾までで'string'を検索
print(s.find('string')) # =>10
# 文字列’is a’から'string'を検索
print(s.find('string', 5, 8)) # =>-1
rfind()メソッド
findメソッドとは逆に、文字列の末尾から検索を行う。
使い方はfindメソッドと同様。
# 文字列sからある文字列を検索する。
s.rfind(検索したい文字列,開始インデックス,終了インデックス)
s = 'This is a string.That is a string.'
# 文字列末尾から先頭までで'string'を検索
print(s.rfind('string')) # =>27
index()メソッド
find()と同様の動作するが、見つからなかった場合「ValueError」という例外が発生する。
# 文字列sからある文字列を検索する。
s.index(検索したい文字列,開始インデックス,終了インデックス)
s = 'This is a string.'
w = 'This is a word.'
# 文字列sの末尾から先頭までで'string'を検索
print(s.index('string')) # =>10
# 文字列wの末尾から先頭までで'string'を検索
print(w.index('string')) # =>ValueError: substring not found
rindex()メソッド
find()に対するrfind()と同様、indexに対するrindex()。
文字列の末尾から検索を行い、見つからなかった場合「ValueError」という例外が発生する。
使い方はindexメソッドと同様なので省略。
endswith()メソッド
文字列が検索したい文字列で終わっている時Trueを返す。そうでない場合、Falthを返す。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。
# 文字列sがある文字列で終わっているか調べる。
s.endswith(検索したい文字列,開始インデックス,終了インデックス)
s = 'apple'
# 文字列sが'e'で終わっているか調べる。
print(s.endswith('e')) # =>True
# 文字列sが'a'で終わっているか調べる。
print(s.endswith('a')) # =>Falth
startswith()メソッド
文字列が検索したい文字列で始まっている時Trueを返す。そうでない場合、Falthを返す。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。
# 文字列sがある文字列で始まっているか調べる。
s.startswith(検索したい文字列,開始インデックス,終了インデックス)
s = 'apple'
# 文字列sが'a'で始まっているか調べる。
print(s.startswith('e')) # =>True
# 文字列sが'e'で始まっているか調べる。
print(s.startswith('a')) # =>Falth
文字列の分割・連結
split()メソッド
文字列を「区切り文字」で区切り、文字列のリストを作って返す。
区切り文字を指定しない場合、スペース・改行等の空白文字が区切り文字となる。
# 文字列sを「区切り文字」で区切る。
s.split(区切り文字)
fruits = 'apple,banana,peach'
# 文字列fruitsを','で区切り、リストを作成。
print(fruits.split(',')) # =>['apple', 'banana', 'peach']
fruits = 'apple banana peach'
# 文字列fruitsをスペースで区切り、リストを作成。
print(fruits.split()) # =>['apple', 'banana', 'peach']
fruits = '''
apple
banana
peach
'''
# 文字列fruitsを改行で区切り、リストを作成。
print(fruits.split()) # =>['apple', 'banana', 'peach']
join()メソッド
シーケンス中の要素を連結した文字列を返す。
# シーケンスを文字列sで分割し連結した文字列を返す。
s.join(シーケンス)
fruits = ['apple', 'banana', 'peach']
# リストfruitsの要素を結合する(区切り文字なし)
print(''.join(fruits)) # =>applebananapeach
# リストfruitsの要素を結合する(区切り文字カンマ)
print(','.join(fruits)) # =>apple,banana,peach
文字列の書き換え
strip()メソッド
文字列の先頭および末尾から文字列を削除し、削除した文字列を返す。
「削除する文字列」を指定しない場合、スペース・タブ等の空白文字を削除する。
# 文字列sの先頭および末尾から文字列を削除する。
s.strip(削除する文字列)
# 文字列fruitsの先頭および末尾から1を削除する。
fruits = '1apple1'
print(fruits.strip('1')) # => apple
複数の文字も削除可能。
# 文字列fruitsの先頭および末尾から1を削除する。
fruits = '11111apple11111'
print(fruits.strip('1')) # => apple
ただし、「削除する文字列」に含まれている文字なら削除してしまうことが注意。
# 文字列fruitsの先頭および末尾からpineを削除する。
# この場合、'p','i','n''e'が削除対象となる。
fruits = 'pineapple'
print(fruits.strip('pine')) # => appl
upper()メソッド
文字列の英字小文字を英字大文字に変換し、その結果を返す。
# 文字列sの小文字を大文字に変換する。
s.upper()
# 文字列fruitsの英字小文字を大文字にする。
fruits = 'Apple'
print(fruits.upper()) # => APPLE
lower()メソッド
文字列の英字大文字を英字小文字に変換し、その結果を返す。
# 文字列sの大文字を子文字に変換する。
s.lower()
# 文字列fruitsの英字大文字を小文字にする。
fruits = 'Apple'
print(fruits.upper()) # => apple
ljust()メソッド
文字列を幅を考慮して左寄せした結果を返す。文字列の幅が指定した値に満たない場合、指定した文字で埋める(埋め草文字)。埋め草文字を指定しない場合、スペースで埋める。
右寄せを行う場合はrjust(),中央寄せを行う場合はcenter()メソッドがある。
# 文字列sの幅を考慮して左寄せする。
s.ljust(幅, 埋め草文字)
# 埋め草文字-として文字列fruitsの幅を7にする
fruits = 'apple'
print(fruits.ljust(7,'-')) #=> apple--