Python で文字列から最後の文字を削除する方法

Azaz Farooq 2023年10月10日
  1. Python で文字列の最後の文字をスライシングメソッドで削除する
  2. 負の索引付け方法による Python 文字列の最後の 3 文字の削除
  3. スライス法と正のインデキシングを使った Python 文字列の最後の 3 文字の削除
  4. Python の文字列の最後の 3 文字を for ループメソッドで除去する
  5. Python の文字列の最後の 3 文字を Regex メソッドで削除する
  6. Python の文字列の最後の文字を Regex メソッドで削除する
Python で文字列から最後の文字を削除する方法

Python の文字列とは、二重引用符やシングルクォーテーションで囲まれた文字の組み合わせです。Python には、この文字列を操作するための関数が複数用意されています。この記事では、文字列の最後の文字や特定の文字を削除するためのさまざまな方法を紹介します。

Python で文字列の最後の文字をスライシングメソッドで削除する

以下のコードを例に見てみましょう。

my_str = "python string"
final_str = my_str[:-1]
print(final_str)

Python の文字列インデックスは 0 から始まりますが、Python では負のインデックスを使って最後の要素を参照するために -1 を使用します。スライシング演算子は文字列の最後の要素にアクセスして削除します。

スライシング演算子の出力は以下のようになります。

python strin

負の索引付け方法による Python 文字列の最後の 3 文字の削除

Python では負のインデキシングを使用することができます。最後の文字はインデックス-1 から始まり、-2、-3、-4 の順で最初の文字に到達します。

コードは以下のようになります。

my_str = "python string"
final_str = my_str[:-3]
print(final_str)

出力:

python str

スライス法と正のインデキシングを使った Python 文字列の最後の 3 文字の削除

関数 len() は文字列の長さを決定します。このメソッドは開始位置 0 から最後の位置 N までの要素を選択し、最後の 3 文字、すなわち(N-3)を減算します。

スライシングメソッドの第 1 引数のデフォルトは 0 です。

コードは以下の通りです。

my_str = "python string"
size = len(my_str)
final_str = my_str[: size - 3]
print(final_str)

出力:

python str

Python の文字列の最後の 3 文字を for ループメソッドで除去する

最初のインデックス 0 から最後のインデックス(N-1)までのすべての文字列に対してループを適用し、文字列の最後にある 3 文字を削除します。

コードは以下の通りです。

my_str = "python string"
n = 3
final_str = ""
for i in range(len(my_str) - n):
    final_str = final_str + my_str[i]
print(final_str)

出力:

 python str

Python の文字列の最後の 3 文字を Regex メソッドで削除する

このメソッドは Python で 2つのグループを比較するために使われます。文字列の中の特定のパターンをチェックするために re という組み込みライブラリを使用します。

コードは以下の通りです。

import re


def rmve_2nd_grp(b):
    return b.group(1)


my_str = "Python String"
result = re.sub("(.*)(.{3}$)", rmve_2nd_grp, my_str)
print(result)

このコードでは、sub() メソッドが定義されたパターンを比較し、その類似オブジェクトを rmve_2nd_grp() メソッドに渡しています。マッチしたオブジェクトは 2つのグループを持っていますが、rmve_2nd_grp() はグループ 1 の文字を比較して文字列を返します。

出力された文字列は以下の通りです。

python Str

Python の文字列の最後の文字を Regex メソッドで削除する

最後の文字を削除する必要がある場合は、以下のコードを使用してください。

import re


def rmve_2nd_grp(b):
    return b.group(1)


my_str = "Python String"
result = re.sub("(.*)(.{1}$)", rmve_2nd_grp, my_str)
print(result)

出力:

Python Strin

関連記事 - Python String