この記事は、学習者が Python の部分文字列についてより深く理解できるようにすることを目的としています。
部分文字列を作成する方法、文字列からそのさまざまな部分を抽出する方法、およびこれを実装するためのいくつかの例を使用して Python の部分文字列がどのように機能するかを説明します。さらに、文字列内に部分文字列が存在するかどうかを確認します。
始める前に、文字列と部分文字列とは何かを理解しておくことが重要です。文字列は、英数字および/または特殊文字で構成される一連の Unicode 文字です。部分文字列は、文字列内の一連の文字の一部として定義できます。
以下について説明します。
- 部分文字列を作成します。
- 部分文字列をスライスする方法。
- 部分文字列の出現数
- 文字列内の部分文字列の存在を検索します。
さぁ、始めよう!
部分文字列の作成
部分文字列は主にスライス手法を使用して作成されます。この手法では、begin-index、end-index、step の区切り文字を定義することで部分文字列を抽出できます。これらの区切り文字を使用すると、取得する文字の正確なインデックスを指定して抽出が可能になります。
構文は次のようになります。
string[begin-index: end-index: step]
文字列のインデックス値はゼロから始まることに注意してください。
begin-index パラメータは、部分文字列の開始インデックスを示します。したがって、スライス時にこの要素を省略すると、Python は自動的にそのインデックス値が 0 であると想定します。
End-index は部分文字列の最後のインデックスです。これを指定しない場合、スライスではその値が文字列の長さに等しいと想定されます。
ステップ: 現在の文字の後に考慮すべき次の文字を示します。通常、このパラメータの値は 1 です。スライス中に step パラメータが省略された場合でも、その値は 1 とみなされます。
文字列をスライスする方法
文字列から部分文字列を取得するにはいくつかの方法があります。これらには次のものが含まれます。
#1. begin-index と end-index を使用したスライス。
String = string[begin-index : end-index]
人のフルネームからファーストネームを取得したい場合は、次のように実装します。
string = 'Michael Doe'
print(string[0:7])
出力は次のようになります。
Michael
#2. end-index を使用せずに begin-index を使用してスライスします。
String= string[begin-index:]
ここでは、文字列から部分文字列文字の抽出をどのインデックスから開始するかを指定するだけです。通常はインデックスが -1 である文字列全体の最後のインデックスまで抽出をスライスします。
例:
string = 'This is to demonstrate slicing of a string using the begin-index without the end-index'
print(string[7:])
出力:
to demonstrate slicing of a string using the begin-index without the end-index
#3. begin-index を使用せずに end-index を使用してスライスします。
String = string[:end-index]
ここでは、部分文字列に含める必要がある最後の文字を指定し、開始位置からは除外します。したがって、スライスすると、文字列のインデックス 0 文字から始まる部分文字列が表示されます。
例:
string = 'This is to demonstrate slicing of a string using the end-index without the begin-index'
print(string[:9])
出力:
This is t
#4.文字列全体をスライスします。
String = string[ : ]
この場合、区切り文字はどれも識別されません。したがって、文字列全体が返されます。
例
string = 'This is to demonstrate slicing of the entire string'
print(string[:])
出力:
This is to demonstrate slicing of the entire string
#5.文字列から単一の文字をスライスします。
String = string[index]
ここでは、文字列の文字の正確なインデックス値が切り出されます。
例:
string = 'This is to demonstrate slicing of a single character from a string'
print(string[8])
「to」の「t」はインデックス値が 8 であるため出力されます。
#6. begin-index、end-index、stepを使用したスライス。
例
string = 'This is to demonstrate slicing of the string using the begin-index, step, and end-index'
print(string[11:24:1])
ステップ値を 1 に設定すると、通常のスライスが行われ、ここでは次が出力されます。
demonstrate s
同じ例を使用して、ステップ値を 2 に設定してみましょう。
string = 'This is to demonstrate slicing of the string using the begin-index, step, and end-index'
print(string[11:24:2])
このように文字のスライスは2段階で行われます。
dmntaes
スライスすると、現在の文字の後の 2 番目の文字が抽出されます。したがって、Python スライスは管理者に「デモンストレーション」を行います。
#7。負のステップを使用して文字列を反転します。
この例では、文字列の最後の文字から最初の文字までの文字列全体が表示されます。
string = 'This is to demonstrate reversing string using the negative step'
print(string[::-1])
出力:
pets evitagen eht gnisu gnirts gnisrever etartsnomed ot si sihT
ネガティブステップは次のように動作します。
R | E | V | E | R | S | E |
0 | 1 | 2 | 3 | 4 | 5 | 6 |
-6 | -5 | -4 | -3 | -2 | -1 |
上記の反転文字列の開始インデックス値は、デフォルトでは 0 から始まり 6 で終了します。負のステップでは、最後の文字のインデックス値を反転して最初の文字に適用し、この値を無効にします。
スライスに関するその他の例
文字列内の最初の 4 つの部分文字列文字を取得します。
string = 'characters'
print(string[0:4])
出力:
char
こちらもお読みください: Python 文字列から最後の文字を削除する方法
文字列内の部分文字列の存在を検出する
Python は、find() 関数または「in」演算子のいずれかを使用して、文字列内の部分文字列の存在を確認します。
「in」演算子の使用例
string = 'this is to demonstrate that a particular substring is found in a string '
if 'find' in string:
print('The substring is found')
else:
print('Could not find the substring defined')
出力:
Could not find the substring defined
上記の例では、部分文字列「find」が宣言された文字列に存在するかどうかをチェックします。文字列内に部分文字列が見つからないため、出力は上記のようになります。
部分文字列「find」を部分文字列「that」に置き換えて、それが文字列内に存在するかどうかをチェックすると、文字列内に存在するため、代わりに「部分文字列が見つかりました」が返されます。
find() 関数の使用例:

string = 'using string to find if a substring is present in a string'
if string.find('found') != -1:
print("The substring 'found' exists")
else:
print("The substring 'found' does not exist")
出力:
<code class="language-python">The substring 'found' does not exist
上の例では、文字列の一部ではない部分文字列を検索しようとしました。上で見たように、find() 関数は文字列全体をチェックし、この特定の「見つかった」部分文字列が見つからない場合は、「見つかった部分文字列は存在しません」という出力を出力として返します。
部分文字列の出現数を調べる
Python は、次の例のように、この条件を実装する count() 関数を使用します。
string = " Counting the number of occurrences of 'o' in this string "
print("The 'o' substring count is: ",string.count('o'));
出力:
The 'o' substring count is: 5
結論
この記事では、Python における部分文字列とは何か、その作成方法をより深く理解できるようにするとともに、スライスの概念とその実装方法について明確に説明しました。上記の例をガイドラインとして使用し、概念をより深く理解するためにさらに多くの例を練習してください。
Python を使用して数字当てゲームを作成する方法や、Python で JSON データを取得する方法も学ぶことができます。
コーディングを楽しんでください!