様々なパターンの文字列の操作方法まとめ。自分用チートシート。
学習の進度に合わせて、内容は随時追加する。
1. 文字列の連結
+演算子を用いる。
文字列1 + 文字列2
string_1 = "あいうえお"
string_2 = "かきくけこ"
print(string_1 + string_2)
# あいうえおかきくけこ
2. 文字列の繰り返し(乗算)
*演算子を用いる。
文字列 * 回数
string = "あ"
print(string * 5)
# あああああ
3. 大文字・小文字の変換
いずれも文字列に対するメソッドを用いる。
3-a. 小文字 → 大文字(upperメソッド)
文字列内の小文字をすべて大文字に変換する。
文字列.upper()
string = "abc"
print(string.upper())
# ABC
3-b. 大文字 → 小文字(lowerメソッド)
文字列内の大文字をすべて小文字に変換する。
文字列.lower()
string = "ABC"
print(string.lower())
# abc
4. 文字列の長さを取得
len関数を用いる。
len(文字列)
string = "abcde"
print(len(string))
# 5
5. 部分文字列の操作
5-a. 特定位置の1文字を抽出
インデックスで指定すると、その位置の文字を取得できる。
インデックスは0から始まるため、n文字目の文字を出力したい場合は、インデックスでn-1の値を指定すればよい。
文字列[n-1]
文字列の長さ以上のインデックスを指定した場合は、エラーとなる。
string = "abcde"
# 1文字目を抽出(インデックス指定は 1-1=0)
print(string[0])
# a
# 5文字目を抽出(インデックス指定は 5-1=4)
print(string[4])
# e
負の値を用いると末尾からの位置を指定できる。最後尾の文字のインデックスは-1となる。
string = "abcde"
# 最後の1文字を抽出
print(string[-1])
# e
5-b. 特定位置の部分文字列を抽出
スライスで抽出位置を指定する。前述のインデックスと同じく、0から始まる。
n文字目からm文字目までの部分文字列を取得する場合
文字列[n-1 : m]
string = "abcde"
# 2~4文字目を抽出
print(string[1:4])
# bcd
startを省略すると先頭からの取得となる。
string = "abcde"
# 3文字目までを抽出
print(string[:3])
# abc
5-c. 部分文字列の位置を取得(findメソッド)
文字列.find(取得する文字列)
取得可能な場合
string = "abcdefghij"
# 文字列"efg"の位置を取得
print(string.find("efg"))
# 5
最初の部分文字列(一番左の文字)の位置のみ取得できる。
取得不可能な場合
string = "abcdefghij"
print(string.find("xyz"))
# -1
指定した文字列が見つからなかったときは、-1
が返ってくる。
5-d. 文字列の個数を取得(countメソッド)
文字列.count(カウントする文字列)
string = "abc_abc_abc_abc_abc_aaaaa"
# 文字"a"
print(string.count("a"))
# 10
# 文字列"abc"
print(string.count("abc"))
# 5
6. 文字列の置換(replaceメソッド)
文字列.replace(置換対象の文字列, 置換後の文字列)
string = "a1, a2, a3"
print(string.replace("a", "A"))
# A1, A2, A3