ホームページ > バックエンド開発 > Python チュートリアル > Python で文字列から浮動小数点数を効率的に抽出するにはどうすればよいですか?

Python で文字列から浮動小数点数を効率的に抽出するにはどうすればよいですか?

DDD
リリース: 2024-11-25 10:00:15
オリジナル
965 人が閲覧しました

How Can I Efficiently Extract Floating-Point Numbers from Strings in Python?

文字列から浮動小数点数を正確に抽出する方法

特定のシナリオでは、文字列から浮動小数点数を抽出する必要があります。たとえば、「現在のレベル: 13.4 db」のような文字列が表示される場合があります。ここで重要なのは数値のみです。正規表現 (RegEx) は、このタスクに対する簡単な解決策を提供します。

正規表現によるアプローチ

浮動小数点数が常に "a.b" の形式で表示される場合は、次のようにすることができます。次の RegEx パターンを利用します:

re.findall("\d+\.\d+", "Current Level: 13.4db.")
ログイン後にコピー

このパターンは、1 つ以上の数字とその後に続く任意の数値シーケンスをキャプチャします。小数点、次に 1 つ以上の数字。この例では、文字列 '13.4' が返されます。

堅牢な抽出のための高度な正規表現

柔軟性を高めるために、次のパターンを検討してください:

re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3")
ログイン後にコピー

このパターンは、より広範囲の浮動小数点表現を処理します。以下を含む:

  • 負符号 (-)
  • 整数 (例: "3")
  • 小数点のない数値 (例: "13")

一致したすべての数値のリストが返されます。 ['-13.2', '14.2', '3'].

検証のための直接変換

あるいは、トークンを float に直接変換して検証することもできますユーザー入力:

user_input = "Current Level: 1e100 db"
for token in user_input.split():
    try:
        print(float(token), "is a float")
    except ValueError:
        print(token, "is something else")
ログイン後にコピー

このコードは、入力文字列内の各トークンを次のように変換しようとします。

特定の要件に適した方法を活用することで、必要な精度と柔軟性で文字列から浮動小数点数を効果的に抽出できます。

以上がPython で文字列から浮動小数点数を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート