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

【初心者向け】Pythonで文字列内の「a」をすべて「$」に置き換える方法

文字列の中に含まれる特定の文字(ここでは「a」)を、別の文字(ここでは「$」)にすべて置き換えたいケースはよくあります。Pythonでは、文字列を1文字ずつ反復処理しながら「+=」演算子で新しい文字列を組み立てることで、この処理を実現できます。

サンプルコード

以下に、実際の実装例を示します。

my_str = "Jane Will Rob Harry Fanch Dave Nancy"

changed_str = ''

for char in range(0, len(my_str)):
    if(my_str[char] == 'a'):
        changed_str += '$'
    else:
        changed_str += my_str[char]
print("元の文字列 :")
print(my_str)
print("置き換え後の文字列 : ")
print(changed_str)

出力結果

元の文字列 :
Jane Will Rob Harry Fanch Dave Nancy
置き換え後の文字列 : 
J$ne Will Rob H$rry F$nch D$ve N$ncy

コードの解説

  • まず、元となる文字列を定義し、コンソールに表示します。

  • 次に、置き換え結果を格納するための空の文字列を用意します。

  • forループで文字列を1文字ずつ確認し、「a」が見つかった場合は「$」に置き換えます。

  • 「a」以外の文字はそのまま新しい文字列へ追加され、変更されません。

  • 最後に、変換後の文字列をコンソールに出力して完了です。

もっと簡単な方法:replace()メソッド

実は、Pythonには文字列置き換え専用のstr.replace()メソッドが標準で用意されています。このメソッドを使えば、上記の処理はたった1行で書けます。

my_str = "Jane Will Rob Harry Fanch Dave Nancy"

changed_str = my_str.replace('a', '$')
print(changed_str)

出力:

J$ne Will Rob H$rry F$nch D$ve N$ncy

リスト内包表記を使う方法

さらに、join()とリスト内包表記を組み合わせる方法もあります。条件分岐を1行にまとめて書けるため、Pythonらしい簡潔な記述になります。

my_str = "Jane Will Rob Harry Fanch Dave Nancy"

changed_str = ''.join('$' if ch == 'a' else ch for ch in my_str)
print(changed_str)

まとめ

文字列の置き換えには複数のアプローチがあります。学習目的で文字列の仕組みを理解したい場合はforループによる方法がおすすめですが、実務ではreplace()メソッドを使うのが最もシンプルで効率的です。状況に応じて使い分けましょう。

  1. 指定された文字列のすべての順列を出力するPythonプログラム

    本記事では、以下の問題に対する解決策について詳しく学んでいきます。 問題文 1つの文字列が与えられたとき、その文字列から作成できるすべての順列(並べ替えの組み合わせ)を表示する必要があります。 それでは、以下の実装例で具体的な解決策を見ていきましょう。 実装例 # リストを文字列に変換 def toString(List): return .join(List) # 順列の生成 def permute(a, l, r): if l == r: print(toString(a)) else: for i in range(l, r +

  2. 【Python】文字列がすべてユニークな文字で構成されているか判定する方法

    本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS