如何在 Python 中從字串中提取數字

Syed Moiz Haider 2021年7月20日
如何在 Python 中從字串中提取數字

本教程解釋瞭如何在 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 的解決方案對負數和正數都適用,克服了列表推導式中遇到的問題。

Syed Moiz Haider avatar Syed Moiz Haider avatar

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

相關文章 - Python String