欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解如何使用Python從字符串中提取數(shù)字

 更新時(shí)間:2023年11月06日 08:47:01   作者:Rick_M359  
這篇文章主要給大家介紹了關(guān)于如何使用Python從字符串中提取數(shù)字的相關(guān)資料,我們?cè)谶M(jìn)行數(shù)據(jù)處理時(shí)候,可能想要提取字符串中的數(shù)字進(jìn)行分析,需要的朋友可以參考下

前言

在Python中,有時(shí)候需要從字符串中提取特定的數(shù)字信息,這種操作很常見(jiàn)。例如,從一篇新聞報(bào)道中提取新聞發(fā)布日期、從一篇小說(shuō)中提取章節(jié)編號(hào)等。那么,如何使用Python從字符串中提取數(shù)字呢?本文將介紹幾種方式。

方法一:使用正則表達(dá)式

正則表達(dá)式是一種專門(mén)用于字符串匹配的工具,在Python中有re模塊支持正則表達(dá)式操作。通過(guò)正則表達(dá)式,可以匹配和提取字符串中的數(shù)字。具體實(shí)現(xiàn)代碼如下:

import re
str1 = '這是一段包含數(shù)字的字符串 123456,可以使用正則表達(dá)式提取數(shù)字'
# 定義正則表達(dá)式
pattern = r'\d+'
# 匹配字符串中的數(shù)字
match_obj = re.findall(pattern, str1)
# 輸出匹配結(jié)果
print(match_obj)

代碼中,使用re.findall函數(shù)匹配字符串中的數(shù)字,匹配規(guī)則由正則表達(dá)式r’\d+’定義,\d表示匹配數(shù)字,+表示匹配前面的1個(gè)或多個(gè)數(shù)字。執(zhí)行上述代碼后,輸出結(jié)果為['123456']。

如果需要提取多組數(shù)字,只需要修改正則表達(dá)式的定義即可。例如,需要提取下面字符串中的數(shù)字:

str2 = 'Python是一門(mén)流行的編程語(yǔ)言,目前最新版本是Python 3.10,發(fā)布于2021年10月4日'

該字符串中包含兩組數(shù)字,分別是3.10和2021年10月4日??梢允褂胷’\d+.\d+’匹配版本號(hào),使用r’\d{4}年\d{1,2}月\d{1,2}日’匹配日期信息。具體的代碼實(shí)現(xiàn)如下:

import re

str2 = 'Python是一門(mén)流行的編程語(yǔ)言,目前最新版本是Python 3.10,發(fā)布于2021年10月4日'

# 定義正則表達(dá)式
pattern1 = r'\d+\.\d+'
pattern2 = r'\d{4}年\d{1,2}月\d{1,2}日'

# 匹配字符串中的數(shù)字
match_obj1 = re.findall(pattern1, str2)
match_obj2 = re.findall(pattern2, str2)

# 輸出匹配結(jié)果
print(match_obj1)
print(match_obj2)

在上述代碼中,使用了兩個(gè)正則表達(dá)式,匹配結(jié)果存儲(chǔ)在match_obj1match_obj2變量中,輸出結(jié)果分別為['3.10']['2021年10月4日']

方法二:使用字符串方法

除了正則表達(dá)式外,Python的字符串還提供了一些常用的方法,可以方便地從字符串中提取數(shù)字。下面介紹一些常用的字符串方法。

方法一:isdigit()

isdigit()方法可以判斷一個(gè)字符串是否只包含數(shù)字字符。如果包含數(shù)字字符,則返回True,否則返回False。如果一個(gè)字符串只有部分字符為數(shù)字,也會(huì)返回False。例如,字符串’12345’返回True,字符串’12F45’返回False。具體代碼如下:

str3 = '1969年7月20日 20:17:40'
num_str = ''
# 提取字符串中的數(shù)字
for char in str3:
    if char.isdigit():
        num_str += char
# 輸出匹配結(jié)果
print(num_str)

在上述代碼中,使用字符串方法isdigit()判斷字符是否為數(shù)字,將字符串中的數(shù)字提取出來(lái),輸出結(jié)果為19697201740。

方法二:isnumeric()

isnumeric()方法可以判斷一個(gè)字符串是否只包含數(shù)字字符和數(shù)字字符對(duì)應(yīng)的Unicode數(shù)值。如果包含數(shù)字字符和對(duì)應(yīng)的Unicode數(shù)值,則返回True,否則返回False。例如,字符串’12345’和字符串’一二三四五’都返回True,而字符串’12F45’和字符串’$#@!’都返回False。具體代碼如下:

str4 = '一二三四五 12345'
num_str = ''
# 提取字符串中的數(shù)字
for char in str4:
    if char.isnumeric():
        num_str += char
# 輸出匹配結(jié)果
print(num_str)

執(zhí)行上述代碼后,輸出結(jié)果為一二三四五12345,只提取其中的數(shù)字字符。

方法三:split()

split()方法可以將一個(gè)字符串按指定字符分割成若干個(gè)子字符串,并返回一個(gè)列表。例如,可以使用空格、逗號(hào)、分號(hào)等分割符將一個(gè)字符串分割成若干個(gè)子字符串。許多時(shí)候,字符串中的數(shù)字和非數(shù)字字符混合在一起,可以使用split()方法將字符串按照非數(shù)字字符分割成若干個(gè)子字符串,再?gòu)闹刑崛?shù)字。具體代碼如下:

str5 = '這個(gè)字符串包含數(shù)字12、54和97,還有一些其他英文字母'
num_list = []
# 將字符串按非數(shù)字字符分割成若干個(gè)子字符串
str_lst = str5.split(' ')
for s in str_lst:
    if s.isdigit():
        num_list.append(int(s))
# 輸出匹配結(jié)果
print(num_list)

在上述代碼中,使用split()方法將字符串按照空格分割成若干個(gè)子字符串,如果子字符串是數(shù)字,則將其轉(zhuǎn)換成整數(shù)并存儲(chǔ)在列表中,輸出結(jié)果為[12, 54, 97]

方法三:使用第三方庫(kù)

Python的第三方庫(kù)很多,其中一些庫(kù)可以方便地從字符串中提取數(shù)字。例如,使用NumPy庫(kù)中的函數(shù)可以將字符串中的數(shù)字轉(zhuǎn)換成浮點(diǎn)數(shù)。具體代碼如下:

import numpy as np
str6 = '3.1415926'
# 將字符串轉(zhuǎn)換成浮點(diǎn)數(shù)
num_float = np.float(str6)
# 輸出匹配結(jié)果
print(num_float)

在上述代碼中,使用NumPy庫(kù)中的np.float()函數(shù)將字符串轉(zhuǎn)換成浮點(diǎn)數(shù),輸出結(jié)果為3.1415926。

結(jié)論

使用Python從字符串中提取數(shù)字,可以使用正則表達(dá)式、字符串方法或第三方庫(kù)。如果字符串中的數(shù)字位置和格式較為固定,使用正則表達(dá)式可以比較方便地提取數(shù)字;如果字符串中數(shù)字和非數(shù)字字符混合在一起,可以使用字符串方法將字符串分割成若干個(gè)子字符串提取數(shù)字;如果需要將字符串中的數(shù)字轉(zhuǎn)換成數(shù)字類型,也可以使用第三方庫(kù)提供的函數(shù)快速實(shí)現(xiàn)。

到此這篇關(guān)于如何使用Python從字符串中提取數(shù)字的文章就介紹到這了,更多相關(guān)Python字符串提取數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3 字符串知識(shí)點(diǎn)學(xué)習(xí)筆記

    python3 字符串知識(shí)點(diǎn)學(xué)習(xí)筆記

    字符串是 Python 中最常用的數(shù)據(jù)類型。我們可以使用引號(hào)('或")來(lái)創(chuàng)建字符串
    2020-02-02
  • Python爬蟲(chóng)爬取電影票房數(shù)據(jù)及圖表展示操作示例

    Python爬蟲(chóng)爬取電影票房數(shù)據(jù)及圖表展示操作示例

    這篇文章主要介紹了Python爬蟲(chóng)爬取電影票房數(shù)據(jù)及圖表展示操作,結(jié)合實(shí)例形式分析了Python爬蟲(chóng)爬取、解析電影票房數(shù)據(jù)并進(jìn)行圖表展示操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-03-03
  • python opencv讀mp4視頻的實(shí)例

    python opencv讀mp4視頻的實(shí)例

    今天小編就為大家分享一篇python opencv讀mp4視頻的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 詳解Python實(shí)現(xiàn)進(jìn)度條的4種方式

    詳解Python實(shí)現(xiàn)進(jìn)度條的4種方式

    這篇文章主要介紹了Python實(shí)現(xiàn)進(jìn)度條的4種方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • PyCharm第一次安裝及使用教程

    PyCharm第一次安裝及使用教程

    本文通過(guò)圖文并茂的形式給大家介紹PyCharm第一次安裝及使用教程,分步驟通過(guò)實(shí)際案例給大家操作演示,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 100 個(gè) Python 小例子(練習(xí)題三)

    100 個(gè) Python 小例子(練習(xí)題三)

    這篇文章主要給大家分享的是100 個(gè) Python 小例子,前期已經(jīng)給大家分過(guò)100個(gè)小例子的(一)和(二),今天小編繼續(xù)和大家分享(三),希望歲正在學(xué)習(xí)的你有所幫助
    2022-01-01
  • Caffe卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層Vision?Layers及參數(shù)詳解

    Caffe卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層Vision?Layers及參數(shù)詳解

    這篇文章主要為大家介紹了Caffe卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層Vision?Layers及參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 在python里從協(xié)程返回一個(gè)值的示例

    在python里從協(xié)程返回一個(gè)值的示例

    今天小編就為大家分享一篇在python里從協(xié)程返回一個(gè)值的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • ?分享一個(gè)Python?遇到數(shù)據(jù)庫(kù)超好用的模塊

    ?分享一個(gè)Python?遇到數(shù)據(jù)庫(kù)超好用的模塊

    這篇文章主要介紹了?分享一個(gè)Python?遇到數(shù)據(jù)庫(kù)超好用的模塊,SQLALchemy這個(gè)模塊,該模塊是Python當(dāng)中最有名的ORM框架,該框架是建立在數(shù)據(jù)庫(kù)API之上,使用關(guān)系對(duì)象映射進(jìn)行數(shù)據(jù)庫(kù)的操作,,需要的朋友可以參考下
    2022-04-04
  • Python之PyQt6對(duì)話框的實(shí)現(xiàn)

    Python之PyQt6對(duì)話框的實(shí)現(xiàn)

    這篇文章主要介紹了Python之PyQt6對(duì)話框的實(shí)現(xiàn),文章內(nèi)容詳細(xì),簡(jiǎn)單易懂,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2023-01-01

最新評(píng)論