Pythonで文字列の一部分の置換をしたり削除をする方法

スポンサーリンク

この記事では、簡単な問題を理解することにします。

問題の名前は「置換と削除の問題」で、ある特定の文字を別の文字列に置換し、ユーザーが入力した文字から特定の文字を削除することになります。

つまり、ある文字を別の文字列または文字群に置き換え、入力からある文字を削除する必要があることがわかります。

これから行う2つのルールは次のとおりです。

    1. 「a」をダブル「d」に置き換える (dd)
  1. b` の出現箇所をすべて削除します。
スポンサーリンク

ステップ 1 と 2: N の入力を受け取り、それを文字配列に変換する

Python の input 関数で入力を受け取り、list 関数で入力文字列をパラメーターとして文字配列を作成します。

1
2
3
4
# 1. Taking input
n = input()
# 2. Convert into a list of characters
l= list(n)

ステップ3: 配列を走査し、規則に従って文字の置換と削除を行う

文字配列ができたので、そのリストを走査して、文字aが得られるたびにそれをddに置き換え、文字bに出会うたびにその文字を文字配列から削除します。

文字を置き換えるには、配列の所定の位置にある文字を直接変更し、配列から文字を削除するには remove 関数を使用します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Rule 1 : Replace 'a' with 'dd'
# Rule 2 : Remove each 'b'
 
# Iterate over each character
i = len(l)-1
while(i!=-1):
     
    # Rule 1
    if(l[i] == 'a'):
        l[i] = 'dd'
     
    # Rule 2
    elif(l[i] == 'b'):
        l.remove(l[i])
    i = i-1

ステップ 4: 更新された新しい文字配列の結合

最後のステップは、更新された文字配列の全要素を1つの文字列に結合することです。

よりよい方法は、入力として受け取った元の文字列を変更することです。

そのために使う関数が join 関数です。

1
2
3
# Join the updated list
n = ''.join(l)
print("New string is: ",n)

これで完成です。

これであなたの解答は完成です。

では、ランダムに出力されるサンプルを見てみましょう。

ファイナルコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 1. Taking input
n = input()
# 2. Convert into a list of characters
l= list(n)
 
print("String entered by user is: ",n)
 
# Rule 1 : Replace 'a' with 'dd'
# Rule 2 : Remove each 'b'
 
# Iterate over each character
i = len(l)-1
while(i!=-1):
     
    # Rule 1
    if(l[i] == 'a'):
        l[i] = 'dd'
     
    # Rule 2
    elif(l[i] == 'b'):
        l.remove(l[i])
    i = i-1
 
# Join the updated list
n = ''.join(l)
print("New string is: ",n)

Outputs

Fake Tags
Fake tag

おわりに

問題点と解決策、そしてコードの実装を理解していただけたでしょうか。


全て自分で実装することができますよ お読みいただきありがとうございました。

タイトルとURLをコピーしました