Pythonのsubstring
Pythonのsubstringの使い方
Pythonには、substringという関数やメソッドはありません。
他の言語で言われるところのSubStringを実現するには、Pythonで文字列の切り取りに使える配列のSlicingを使います。配列の添字の書き方でSubStringが実現できるんです。具体的には、以下のようなことを行います。
- 文字列の最初から指定された数の文字列を切り取る
- 文字列の最後から指定された数の文字列を切り取る
- 特定のIndexから特定のIndexまでの文字列を切り取る
関連 python int tostring/数値を文字列に変換
文字の切り取り(Slicing)の構文とサンプル
具体的にコードで見ていきましょう。
文字列の最初から指定された数の文字列を切り取る方法
my_str = "This is a substring tutorial..!"
result = my_str[0:7]
print(result)
# Output: This is
スライス機能(配列をコロンで区切って指定する)を使って、開始位置のインデックスから終了位置のインデックスまでの部分文字列を取得できます。
文字列の最後から指定された数の文字列を切り取る方法
my_str = "This is a substring tutorial..!"
result = my_str[-5:]
print(result)
# Output: al..!
開始インデックスまたは終了インデックスを省略すると、文字列の先頭から部分文字列を取得したり、文字列の最後までを取得したりできます。上記の例では、少々トリッキーで、「-5」で最後から数えて5文字目を開始位置とし、終了位置を省略して最後の文字を終了位置としています。
特定のIndexから特定のIndexまでの文字列を切り取る方法
my_str = "This is a substring tutorial..!"
result = my_str[2:13]
print(result)
# Output: is a substr
以上の方法を使って、文字列を必要な長さに変更できます。
Pythonで文字列を切り取る方法。以下は、文字列を切り取るために使用できるSlicingの構文と使い方の例です。
- 文字列の前後から切り取る場合は、次のようにします。
string[start:end]
この場合、start
は切り取りを開始する位置、end
は切り取りを終了する位置です。 - 特定のIndexからIndexまで切り取る場合は、次のようにします。
string[start:end:step]
この場合、start
は切り取りを開始する位置、end
は切り取りを終了する位置、step
は切り取りを行う間隔です。
スライス機能には「step指定」というのがありますが、文字列切り取りにはあまり使わないんじゃないかな…。いちおう、コードサンプルと、実行例を書いておきます。
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 2つおきに表示 print(array[::2]) # 3つおきに表示 print(array[::3]) # 逆順に表示 print(array[::-1]) # 逆順で2つおきに表示 print(array[::-2])
実行結果はこんな感じ。「文字列を逆にする」は意外と使えるかも。
[1, 3, 5, 7, 9] [2, 4, 6, 8, 10] [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] [10, 8, 6, 4, 2]
Pythonのsubstringのまとめ
- Pythonでは、文字列の切り取りには、特別な関数を使う必要はない。
- Pythonで文字列の切り取り(Slicing)をするには、string[start:end:step]の形で指定する。
- 指定する値は、start=切り取り開始位置、end=切り取り終了位置、step=切り取り間隔