Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列からn番目の文字を削除する方法【サンプルコード付き】

Pythonにおいて、文字列は文字の配列として扱われます。そのため、先頭の文字のインデックスは「0」から始まり、各文字の位置(インデックス)を簡単に取得できます。この性質を利用すると、指定したn番目の文字だけを削除することが可能です。

基本的な考え方はシンプルです。削除したい文字のインデックス番号を受け取り、元の文字列を次の2つの部分文字列に分割します。

  • n番目のインデックスの文字より前の部分
  • n番目のインデックスの文字より後の部分

その後、この2つの部分文字列を連結すれば、n番目の文字が取り除かれた新しい文字列が完成します。

実行例

入力: python
削除するインデックス: 3
出力: pyton

上記の例では、「python」という文字列から3番目のインデックス(0始まりのため4文字目)にある「h」が削除され、「pyton」が出力されています。

アルゴリズム

ステップ1: 文字列を入力する。
ステップ2: 削除したい文字のインデックス p を入力する。
ステップ3: p番目のインデックスより前の文字を変数 X に格納する。
ステップ4: n番目のインデックスより後の文字を変数 Y に格納する。
ステップ5: n番目の文字を削除した後の文字列を返す。

サンプルコード

# 文字列からn番目の文字を削除する
def removechar(str1, n): 
   # n番目のインデックスより前の文字を変数 x に格納
   x = str1[ : n] 
   # n番目のインデックスより後の文字を変数 y に格納
   y = str1[n + 1: ]
   # n番目の文字を削除した文字列を返す
   return x + y
# ドライバーコード
if __name__ == '__main__':
   str1 = input("文字列を入力してください ::")
   n = int(input("削除するインデックスを入力してください ::"))
   # 新しい文字列を表示
   print("新しい文字列は ::")
   print(removechar(str1, n))

実行結果

文字列を入力してください :: python
削除するインデックスを入力してください ::3
新しい文字列は ::
pyton

このように、スライス構文 str[:n]str[n+1:] を組み合わせることで、ループ処理を使わずに簡潔に特定位置の文字を削除できます。なお、Pythonの文字列はイミュータブル(変更不可)であるため、元の文字列自体は変更されず、新しい文字列が生成される点にも注意しましょう。

  1. Pythonで文字列からn番目の文字を削除するプログラムの書き方

    はじめにこの記事では、以下の問題に対する解決方法を解説します。問題文 − 与えられた文字列から、指定したインデックス(i番目)の文字を削除し、その結果を表示します。Pythonの文字列では、インデックスは必ず0から始まるという点に注意してください。例えば、「Tutorialspoint」という文字列の場合、各文字のインデックスは以下のように対応しています。T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13それでは、この問題を解決するためのPythonスクリプトを見ていきましょう。実装例def remove(string

  2. n番目のフィボナッチ数を求めるPythonプログラム【再帰・動的計画法】

    本記事では、n番目のフィボナッチ数を計算するPythonプログラムについて解説します。フィボナッチ数とは?フィボナッチ数とは、次の漸化式で定義される数列のことです。Fn = Fn-1 + Fn-2ただし、初期値は F0 = 0、F1 = 1 とします。フィボナッチ数列の最初のいくつかの値は以下の通りです。0, 1, 1, 2, 3, 5, 8, 13, ..................フィボナッチ数は、再帰と動的計画法(Dynamic Programming)という2つの代表的な手法で求めることができます。それでは、それぞれの実装方法をPythonスクリプトで見ていきましょう。方法1:再帰