如何在 Python 中從字串中提取數字
Syed Moiz Haider
2021年7月20日
2020年11月24日
本教程解釋瞭如何在 Python 中從一個字串中獲取數字。它還列出了一些示例程式碼,以使用不同的方法進一步澄清概念。
使用列表推導式從字串中提取數字
字串中的數字可以通過簡單的列表推導來獲得。split()
方法用於將字串轉換為字元列表,isdigit()
方法用於檢查通過迭代是否找到數字。
基本程式碼示例如下:
temp_string = "Hi my age is 32 years and 250 days12"
print(temp_string)
numbers = [int(temp)for temp in temp_string.split() if temp.isdigit()]
print(numbers)
輸出:
Hi my age is 32 years and 250 days12
[32, 250]
但是,這個程式碼不能識別帶有字母的數字。
使用 re
模組從字串中提取數字
Python 的 re
模組還提供了可以搜尋字串並提取結果的函式。re
模組提供了 findall()
方法,該方法返回所有匹配結果的列表。下面給出一個示例程式碼。
import re
temp_string = "Hi my age is 32 years and 250.5 days12"
print(temp_string)
print([float(s) for s in re.findall(r'-?\d+\.?\d*', temp_string)])
輸出:
Hi my age is 32 years and 250.5 days12
[32.0, 250.5, 12.0]
RegEx
的解決方案對負數和正數都適用,克服了列表推導式中遇到的問題。
Author: Syed Moiz Haider
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn