python 文字列に数値が含まれているか判定する

python 文字列に数値が含まれているか判定する

pythonで、文字列に数値が含まれているか判定するサンプルコードを記述してます。pythonのバージョンは3.10.0を使用してます。

環境

  • OS windows11 home 64bit
  • python 3.10.0

文字列に数値が含まれているか判定

文字列に数値が含まれているか判定するには、「any」と「isdigit」を使用します。

str1 = "he22o"
str2 = "world"
str3 = "0"
str4 = "123"

print(any(c.isdigit() for c in str1)) # True
print(any(c.isdigit() for c in str2)) # False
print(any(c.isdigit() for c in str3)) # True
print(any(c.isdigit() for c in str4)) # True

正規表現や「Map」を使用することも可能です。

import re

str1 = "he22o"
str2 = "world"
str3 = "0"
str4 = "123"

print(bool(re.search(r'\d', str1))) # True
print(bool(re.search(r'\d', str2))) # False
print(bool(re.search(r'\d', str3))) # True
print(bool(re.search(r'\d', str4))) # True

「Map」

str1 = "he22o"
str2 = "world"
str3 = "0"
str4 = "123"

print(any(map(str.isdigit, str1))) # True
print(any(map(str.isdigit, str2))) # False
print(any(map(str.isdigit, str3))) # True
print(any(map(str.isdigit, str4))) # True

パフォーマンスは、「Map」を使用した方が良さそうです。
※それぞれ同じ条件で1000万回実行した結果

any isdigit : 23527.5 ms
正規表現 : 49409.3 ms
any map isdigit : 11438.4 ms