今回は、Pythonの文字列から数字を抽出する方法に焦点を当てます。
では、さっそく始めましょう。
1. Pythonの文字列から数字を抽出するisdigit()関数の活用
Pythonは文字列中に数字があるかどうかを調べるために string.isdigit()
という関数を提供しています。
Python の isdigit() 関数は、入力文字列に数字が含まれている場合に True を返します。
構文は以下の通りです。
string.isdigit() |
この関数にパラメータを渡す必要はありません。
出力としては、文字列中に数字があるかどうかによって True または False を返します。
例として以下の様になります。
inp_str = "Python4Journaldev"
print ( "Original String : " + inp_str)
num = ""
for c in inp_str:
if c.isdigit():
num = num + c
print ( "Extracted numbers from the list : " + num)
|
この例では、入力文字列を一文字ずつforループで反復している。
isdigit()関数が数字に出会うとすぐに、その数字をnumという文字列変数に格納します。
その結果、次のような出力が得られます。
結果は以下の通りです。
Original String : Python4Journaldev Extracted numbers from the list : 4
|
Pythonのリスト内包を使えば、反復処理とidigit()関数を1行で済ませることもできます。
これにより、以下のように数字がリスト’num’に格納されます。
例2:
inp_str = "Hey readers, we all are here be 4 the time!"
print ( "Original string : " + inp_str)
num = [ int (x) for x in inp_str.split() if x.isdigit()]
print ( "The numbers list is : " + str (num))
|
出力。
Original string : Hey readers, we all are here be 4 the time!
The numbers list is : [ 4 ]
|
2. regexライブラリによる数字の抽出
Pythonの正規表現ライブラリ「regex library」を使うと、文字列から数字や特殊文字などの特定の文字の存在を検出することができます。
この手順を実行する前に、python環境にregexライブラリをインポートしておく必要があります。
import re
|
さらに、文字列から数字文字を抽出するために、re.findall(r' d+', string)
を実行します。
d+’の部分は、findall()関数が数字の存在を検出するのに役立ちます。
例えば、以下の様になります。
import re
inp_str = "Hey readers, we all are here be 4 the time 1!"
print ( "Original string : " + inp_str)
num = re.findall(r 'd+' , inp_str)
print (num)
|
以下のように、文字列からすべての数字文字のリストが得られます。
結果は、以下の通りです。
Original string : Hey readers, we all are here be 4 the time 1 !
[ '4' , '1' ]
|
この記事もチェック:Pythonで正規表現を使ってファイルから文字列を抽出する方法
まとめ
ここまでで、このトピックは終了です。
何か疑問があれば、お気軽にコメントください。
皆さんもリストやディクショナリなどのデータ構造を使って、上記の例を実装してみることをお勧めします。
今後もPythonに関連した記事を書いていきますので、お楽しみに。