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
-
前の記事
sakuraエディタ 行をまるごとコピーしてすぐ下に挿入するショートカットキー 2022.09.24
-
次の記事
php フォルダを再帰的に作成する 2022.09.24
コメントを書く