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

Pythonで文字列内の数字を英単語(文字列)に置き換える方法

Pythonでは、文字列の中に含まれる数字を、対応する英単語(例:「3」→「three」)に置き換えることができます。この記事では、辞書(dict)とforループを組み合わせた基本的な実装方法を、サンプルコードとともにわかりやすく解説します。

1. 変換用の辞書を用意する

まず、各数字をキー、その英単語表現を値とする辞書オブジェクトを作成します。

dct = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four',
       '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'}

2. 結果を格納する空の文字列を初期化する

変換後の文字列を組み立てるための、新しい空の文字列を用意します。

newstr = ''

3. 文字列を1文字ずつ走査して置き換える

forループで入力文字列の各文字(ch)を順番に取り出し、isdigit()メソッドを使ってその文字が数字かどうかを判定します。

  • 数字の場合: その文字をキーとして辞書から対応する単語を取得し、newstrに追加します。
  • 数字以外の場合: 元の文字chをそのままnewstrに追加します。

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

string = 'I have 3 Networking books, 0 Database books, and 8 Programming books.'
dct = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four',
       '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'}
newstr = ''
for ch in string:
    if ch.isdigit():
        dw = dct[ch]
        newstr = newstr + dw
    else:
        newstr = newstr + ch
print(newstr)

実行結果

プログラムを実行すると、すべての数字が英単語に置き換えられた文字列が出力されます。

I have three Networking books, zero Database books, and eight Programming books.

補足:より簡潔な書き方

同じ処理は、join()と条件式(三項演算子)を組み合わせることで、よりPythonicに記述することもできます。

result = ''.join(dct[ch] if ch.isdigit() else ch for ch in string)
print(result)

どちらの方法でも結果は同じですが、後者の書き方はコードが短く済むため、慣れてきたら活用するとよいでしょう。

  1. C#で複数のスペースを1つのスペースに置き換える方法

    C#で複数のスペースを1つのスペースに置き換える主な方法C#では、文字列内に含まれる連続した複数のスペースを1つのスペースにまとめるために、いくつかの方法があります。ここでは代表的な3つのアプローチを紹介します。String.Replace現在の文字列内に出現する、指定したUnicode文字または文字列をすべて、別の指定したUnicode文字または文字列に置き換えた新しい文字列を返します。Replace(String, String, Boolean, CultureInfo) のオーバーロードもありますが、可変長の連続スペースを直接処理するには工夫が必要です。String.Join指定された

  2. Pythonのcv2(OpenCV)で画像を表示する方法をわかりやすく解説

    PythonのOpenCV(cv2)を使えば、数行のコードで画像ファイルを読み込み、画面に表示することができます。ここでは、画像を読み込んで表示するための基本的な手順と、各関数の役割について解説します。 画像を表示するための基本手順 cv2で画像を読み込み・表示するには、主に以下のステップを実行します。 cv2.imread():ファイルから画像を読み込みます。 cv2.imshow():指定した名前のウィンドウに画像を表示します。 cv2.waitKey():キーが押されるまでプログラムを待機させます。 cv2.destroyAllWindows():開いているすべてのHighGUIウィン