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)
どちらの方法でも結果は同じですが、後者の書き方はコードが短く済むため、慣れてきたら活用するとよいでしょう。
-
C#で複数のスペースを1つのスペースに置き換える方法
C#で複数のスペースを1つのスペースに置き換える主な方法C#では、文字列内に含まれる連続した複数のスペースを1つのスペースにまとめるために、いくつかの方法があります。ここでは代表的な3つのアプローチを紹介します。String.Replace現在の文字列内に出現する、指定したUnicode文字または文字列をすべて、別の指定したUnicode文字または文字列に置き換えた新しい文字列を返します。Replace(String, String, Boolean, CultureInfo) のオーバーロードもありますが、可変長の連続スペースを直接処理するには工夫が必要です。String.Join指定された
-
Pythonのcv2(OpenCV)で画像を表示する方法をわかりやすく解説
PythonのOpenCV(cv2)を使えば、数行のコードで画像ファイルを読み込み、画面に表示することができます。ここでは、画像を読み込んで表示するための基本的な手順と、各関数の役割について解説します。 画像を表示するための基本手順 cv2で画像を読み込み・表示するには、主に以下のステップを実行します。 cv2.imread():ファイルから画像を読み込みます。 cv2.imshow():指定した名前のウィンドウに画像を表示します。 cv2.waitKey():キーが押されるまでプログラムを待機させます。 cv2.destroyAllWindows():開いているすべてのHighGUIウィン