【Python】文字操作
【コードと説明】
<一覧>
今回のコード一覧です。
コード | 説明 |
---|---|
ワード1 + ワード2 | ワード1とワード2がつなげる |
接続文字.join(ワード(リスト)) | 接続文字を間に入れてリスト内の文字をつなげる |
"ワード".split(区切り文字, 分割数) | 区切り文字でワードを左から分割数だけ分割 |
ワード.rsplit(区切り文字, 分割数) | 区切り文字でワードを右から分割数だけ分割 |
ワード.sprit(削除文字) | 削除文字を両端から削除 |
ワード.lsprit(削除文字) | 削除文字を左端から削除 |
ワード.rsprit(削除文字) | 削除文字を右端から削除 |
ワード[n-1] | ワードの n 文字目を取得 |
ワード[n-1:n-1+m] | ワードの n 文字目から m 文字を取得 |
ワード.replace(変換前, 変換後, 変換する個数) | ワードの変換前の文字を変換後の文字に個数分、左から置換する |
ワード.find(検索ワード, 検索位置) | 左から検索を始め、検索位置から右側の検索ワードの開始位置を取得 |
ワード.rfind(検索ワード) | 左から検索を始め、検索ワードの開始位置を取得 |
<文字の結合>
# ワード1 + ワード2 # 接続文字.join(ワード(リスト)) wordlist = ['a', 'b', 'c', 'd', 'e'] print('a' + 'b') # => ab print("_".join(wordlist)) # => a_b_c_d_e
<文字の分割>
# ワード.split(区切り文字, 分割数) # ワード.rsplit(区切り文字, 分割数) word = "This is a pen." s = "a_b_c_d_e" print(word.split()) # => ['This', 'is', 'a', 'pen.'] print(s.split("_")) # => ['a', 'b', 'c', 'd', 'e'] print(s.split("_", 3)) # => ['a', 'b', 'c', 'd_e'] print(s.rsplit("_", 2)) # => ['a_b_c', 'd', 'e']
区切り文字を省略すると「空白」で分割されます。
区切り数を省略すると全ての区切り文字の箇所で分割されます。
区切り数を指定する際は区切り文字の省略はできませんでした。
分割後は、リストとして出力されます。
<両端文字の削除>
# ワード.strip(削除文字) # ワード.lstrip(削除文字) # ワード.rstrip(削除文字) word = " is " s = "XXXAXXXAXXX" print('This' + word.strip() + 'pen') # => Thisispen print('This' + word.lstrip() + 'pen') # => Thisis pen print('This' + word.rstrip() + 'pen') # => This ispen print(s.strip("X")) # => AXXXA print(s.lstrip("X")) # => AXXXAXXX print(s.rstrip("X")) # => XXXAXXXA
削除文字を省略すると「空白」が削除されます。
削除文字を指定すると左端/両端/右端のその文字が削除されます。
<文字の取得>
# ワード[n-1] # ワード[n-1:n-1+m] word = 'abcdef' print(word[0]) #=>a print(word[3]) #=>d print(word[-1]) #=>f print(word[-3]) #=>d print(word[0:4]) #=>abcd print(word[3:]) #=>def print(word[-4:-1]) #=>cde print(word[-2:]) #=>ef print(word[:-4]) #=>ab
先頭の文字を0文字目とするため、n 文字目を取得するには n+1 の数値を入れる必要があります。
「-」を入れると後ろから何文字目を取得できます。この書き方では最後尾の文字が1になるため注意が必要です。
n 文字目から m 文字取得する書き方では[○:△]の時に、○文字目から△文字目未満をとってくるイメージです(先頭文字を0文字目として)。
△を省略すると、○文字目以降の文字全てを取得します。
○を省略すると、△文字目未満の文字を全て取得します。
<文字の置換>
# ワード.replace(変換前, 変換後, 変換する個数) word = 'abcdef def' print(word.replace('abc', 'aaa')) # => aaadef def print(word.replace('def', 'xyz')) # => abcxyz xyz print(word.replace('def', 'xyz', 1)) # => abcxyz def print(word.replace('hif', 'xyz', 1)) # => abcdef def
変換する個数を省略すると対象を全て変換します。
変換対象がない場合は何もおきません。
<文字の検索>
# ワード.find(検索ワード, 検索位置) # ワード.rfind(検索ワード) 後ろから検索 word = 'apple and ant' print(word.find('a')) # => 0 print(word.find('a', 1)) # => 6 print(word.find('f')) # => -1 print(word.find('a', 11)) # => -1 print(word.rfind('a')) # => 10
検索ワードがない場合には「-1」が返されます。
【後書き】
今回は簡単なPythonでの文字操作についてメモをしました。
Pythonでは他にもいろいろな文字操作方法がありそうですので、調べるたびにメモを増やしていきたいと思います。(多くなってきたら1つにまとめようと思います)
【参考サイト】
今回の作業にあたり、下記サイトを参考にさせて頂きました。
qiita.com