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の文字列はイミュータブル(変更不可)であるため、元の文字列自体は変更されず、新しい文字列が生成される点にも注意しましょう。
-
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
-
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:再帰