Pythonで文字列の先頭n文字を削除する方法【スライス構文の使い方】
Pythonのスライス構文を使うと、インデックス値を指定して文字列から特定の文字や範囲の文字を取り除くことができます。
この記事では、Pythonで文字列の先頭からn文字を削除する方法を解説します。スライス構文の具体的な使用例を通して、自分のプログラムでもすぐに活用できるようになりましょう。
Pythonにおける文字列のインデックス
文字列は文字の連なり(シーケンス)です。文字列内の各文字には一意のインデックス番号が割り当てられており、この番号を使って特定の文字や文字の集合を識別・操作することができます。
インデックス番号は0から始まり、文字ごとに1ずつ増えていきます。次の文字列を見てみましょう。
| P | i | e | s | ! |
| 0 | 1 | 2 | 3 | 4 |
この文字列は5文字で構成されています。先頭の「P」のインデックスは0、末尾の「!」のインデックスは4です。
これらの番号を利用すれば、個々の文字を取得したり、文字列から特定の文字を削除したりすることが可能です。
Pythonで文字列の先頭n文字を削除する
ここでは、ドーナツ店が保存しているレシート(購入履歴)から先頭4文字を削除するプログラムを作成します。これらの文字は購入IDを表していますが、システムのアップグレードにより不要になったという設定です。
まず、元のレシートのリストと、新しいレシートを格納するための空のリストを定義します。
receipts = [
"107 Strawberry donut $2.00",
"297 Blueberry donut $2.10",
"342 Raspberry donut $2.10"
]
new_receipts = []
リストの各要素の先頭にある3桁の数字が購入IDです。IDの直後にはスペースがあり、このスペースも一緒に削除したい部分となります。
続いて、「for」ループを使ってリスト内の各レシートを反復処理し、先頭4文字を削除していきます。
for r in receipts:
new_r = r[4:]
new_receipts.append(new_r)
このコードは、「receipts」リスト内の各レシートから先頭4文字を削除します。削除後の新しい文字列は変数「new_r」に代入されます。Pythonの文字列はイミュータブル(不変)であり、既存の文字列を直接変更することはできないため、このような新しい文字列を作る形の処理になります。
その後、新しいレシートを「new_receipts」リストに追加します。最後に「new_receipts」をコンソールに出力して、コードが正しく動作したかを確認しましょう。
print(new_receipts)
コードを実行すると、次の結果が得られます。
['Strawberry donut $2.00', 'Blueberry donut $2.10', 'Raspberry donut $2.10']
元の文字列それぞれから、先頭4文字が正常に削除されました。
削除する文字数を増やしたり減らしたりしたい場合は、数字の4を任意の文字数に置き換えるだけです。例えば、先頭2文字だけを削除したい場合は、次のように記述します。
new_r = r[2:]
このコードに変更して実行すると、プログラムは次の結果を返します。
['7 Strawberry donut $2.00', '7 Blueberry donut $2.10', '2 Raspberry donut $2.10']
まとめ
スライス構文を使えば、文字列の先頭からn文字を簡単に削除できます。この構文を利用することで、特定のインデックス値に基づいて文字列の一部を柔軟に取得・加工することが可能です。
これで、プロの開発者のようにスライスを使ってPythonの文字列から文字を削除するための基礎知識が身につきました。ぜひ実際のプログラムで試してみてください!
-
【Python】文字ストリームから最初に一度だけ現れる文字を検索する方法
文字ストリーム(あるいは単純な文字列)が与えられ、その中から最初に一度だけ出現する文字を見つける問題を考えてみましょう。例えば、文字列が「people」の場合、出現回数が1回となる最初の文字は「o」であり、そのインデックス 2 を返します。該当する文字が存在しない場合は -1 を返します。 解法のアプローチ この問題は、各文字の出現回数を記録する「頻度マップ(ハッシュマップ)」を使うことで効率的に解けます。手順は以下のとおりです。 空の頻度マップ(辞書)を作成する 文字列内の各文字 c について次の処理を行う c がマップに存在しない場合は、キー c を値 1 で登録する すでに存在する場
-
Pythonで文字列から特定の文字を削除する方法【replace・正規表現・translate】
replace()メソッドで文字を削除する基本の方法Pythonの文字列(str型)には、部分文字列を別の文字列へ置き換えるためのreplace()メソッドが用意されています。削除したい文字を空文字列()に置き換えることで、その文字を取り除くことができます。>>> Hello people.replace(e, ) Hllo popl正規表現(re.sub)で複数の文字を一度に削除する1行のコードで複数種類の文字をまとめて削除したい場合は、正規表現モジュール re を使うのがおすすめです。削除したい文字を「|」(OR条件)で区切って指定し、re.sub(置換対象パターン, 置