首頁 >後端開發 >Python教學 >如何在Python中高效率地從字串中提取浮點數?

如何在Python中高效率地從字串中提取浮點數?

DDD
DDD原創
2024-11-25 10:00:15952瀏覽

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

如何從字串中精確提取浮點數

在某些場景下,從字串中提取浮點數是必要的。例如,您可能會遇到「目前層級:13.4 db」之類的字串。其中僅對數值感興趣。正規表示式 (RegEx) 為此任務提供了一個簡單的解決方案。

RegEx 方法

如果您的浮點數總是以「a.b」形式出現,您可以利用下列正規表示式模式:

re.findall("\d+\.\d+", "Current Level: 13.4db.")

此模式將擷取包含一個或多個數字的任何數字序列,後面接著一個小數點,然後是一位或多位數字。在我們的範例中,它將返回字串“13.4”。

用於穩健擷​​取的高階正規表示式

為了獲得更大的彈性,請考慮以下模式:

re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3")

此模式處理更廣泛的浮點表示,包括:

  • 負號(-)
  • 整數(例如「3」)
  • 不帶小數點的數字(例如“13”)

它將傳回所有符合數字的清單:['-13.2', '14.2', '3'].

直接轉換進行驗證

或者,您可以直接將令牌轉換為浮點數以驗證使用者輸入:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn