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

Python?如何截取字符函數(shù)

 更新時(shí)間:2022年11月03日 08:37:25   作者:ajklsdnal  
這篇文章主要介紹了Python?如何截取字符函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

如何截取字符函數(shù)

在工作中我們經(jīng)常會(huì)遇到某種情況需要截取字符串中某個(gè)特定標(biāo)簽之間的內(nèi)容(爬蟲可能用到的較多),適用于很多情況例如字符串形式的xml報(bào)文、json格式的字符串以及其它類型的字符串。

因?yàn)槲铱偨Y(jié)了有關(guān)字符串截取的兩個(gè)函數(shù)來記錄一下,以供參考。

# 方法一:簡(jiǎn)單截取不重復(fù)標(biāo)簽中的內(nèi)容
def substr(mystr, startStr, endChar):
? ? '''
? ? 自定義字符串截取函數(shù):只從字符串中第一次遇見的內(nèi)容
? ? '''
? ? startStr_len = len(startStr)
? ? start_index = mystr.index(startStr)
? ? end_index = mystr.index(endChar)
? ? return mystr[start_index+startStr_len:end_index]
?
'''
a = 'abc111bcd abc222bcd'
result = substr(a, 'abc', 'bcd') ? ?# result='111'
'''
?
# 方法二:重復(fù)截取標(biāo)簽中的內(nèi)容并將結(jié)果作為列表返回
def substr_to_list(mystr, startStr, endChar):
? ? '''自定義字符串截取函數(shù)'''
? ? result = []
? ? position = 0
? ? while True: ? ? ? ? ? ? ? ?# 因?yàn)閕ndex()函數(shù)如果沒有找到想要的內(nèi)容會(huì)報(bào)異常ValueError
? ? ? ? try: ? ? ? ? ? ?
? ? ? ? ? ? startStr_len = len(startStr)
? ? ? ? ? ? endChar_len = len(endChar)
? ? ? ? ? ? start_index = mystr.index(startStr, position)
? ? ? ? ? ? end_index = mystr.index(endChar, position)
? ? ? ? ? ? position = end_index + endChar_len
? ? ? ? ? ? result.append(mystr[start_index+startStr_len:end_index])
? ? ? ? except Exception as e:
? ? ? ? ? ? break
? ? return result
'''
a = 'abc111bcd abc222bcd'
result = substr(a, 'abc', 'bcd') ? ?# result=['111','222']
'''

效率方面就沒有考慮啦,畢竟都用python了還考慮什么效率,哈哈!

截取字符串(字符串切片)

字符串

從本質(zhì)上講,字符串是由多個(gè)字符構(gòu)成的,字符之間是有順序的,這個(gè)順序號(hào)就稱為索引(index)。Python 允許通過索引來操作字符串中的單個(gè)或者多個(gè)字符,比如獲取指定索引處的字符,返回指定字符的索引值等。

獲取單個(gè)字符

知道字符串名字以后,在方括號(hào)[ ]中使用索引即可訪問對(duì)應(yīng)的字符,具體的語法格式為:

strname[index]

strname 表示字符串名字,index 表示索引值。

Python 允許從字符串的兩端使用索引:

  • 當(dāng)以字符串的左端(字符串的開頭)為起點(diǎn)時(shí),索引是從 0 開始計(jì)數(shù)的;字符串的第一個(gè)字符的索引為 0,第二個(gè)字符的索引為 1,第三個(gè)字符串的索引為 2 ……
  • 當(dāng)以字符串的右端(字符串的末尾)為起點(diǎn)時(shí),索引是從 -1 開始計(jì)數(shù)的;字符串的倒數(shù)第一個(gè)字符的索引為 -1,倒數(shù)第二個(gè)字符的索引為 -2,倒數(shù)第三個(gè)字符的索引為 -3 ……

請(qǐng)看下面的實(shí)例演示:

url = 'http://c.biancheng.net/python/'
#獲取索引為10的字符
print(url[10])
#獲取索引為 6 的字符
print(url[-6])

運(yùn)行結(jié)果:

i
y

獲取多個(gè)字符(字符串截去/字符串切片)

使用[ ]除了可以獲取單個(gè)字符外,還可以指定一個(gè)范圍來獲取多個(gè)字符,也就是一個(gè)子串或者片段,具體格式為:

strname[start : end : step]

對(duì)各個(gè)部分的說明:

  • strname:要截取的字符串;
  • start:表示要截取的第一個(gè)字符所在的索引(截取時(shí)包含該字符)。如果不指定,默認(rèn)為 0,也就是從字符串的開頭截??;
  • end:表示要截取的最后一個(gè)字符所在的索引(截取時(shí)不包含該字符)。如果不指定,默認(rèn)為字符串的長度;
  • step:指的是從 start 索引處的字符開始,每 step 個(gè)距離獲取一個(gè)字符,直至 end 索引出的字符。step 默認(rèn)值為 1,當(dāng)省略該值時(shí),最后一個(gè)冒號(hào)也可以省略。

【實(shí)例1】基本用法:

url = 'http://c.biancheng.net/java/'
#獲取索引從7處到22(不包含22)的子串
print(url[7: 22]) # 輸出 zy
#獲取索引從7處到-6的子串
print(url[7: -6]) # 輸出 zyit.org is very
#獲取索引從-21到6的子串
print(url[-21: -6])
#從索引3開始,每隔4個(gè)字符取出一個(gè)字符,直到索引22為止
print(url[3: 22: 4])

運(yùn)行結(jié)果:

c.biancheng.net
c.biancheng.net
c.biancheng.net
pcaen

【實(shí)例2】高級(jí)用法,start、end、step 三個(gè)參數(shù)都可以省略:

url = 'http://c.biancheng.net/java/'
#獲取從索引5開始,直到末尾的子串
print(url[7: ])
#獲取從索引-21開始,直到末尾的子串
print(url[-21: ])
#從開頭截取字符串,直到索引22為止
print(url[: 22])
#每隔3個(gè)字符取出一個(gè)字符
print(url[:: 3])

運(yùn)行結(jié)果:

c.biancheng.net/java/
c.biancheng.net/java/
http://c.biancheng.net
hp/bne.ta/

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python采集天天基金數(shù)據(jù)掌握最新基金動(dòng)向

    Python采集天天基金數(shù)據(jù)掌握最新基金動(dòng)向

    這篇文章主要介紹了Python采集天天基金數(shù)據(jù)掌握最新基金動(dòng)向,本次案例實(shí)現(xiàn)流程為發(fā)送請(qǐng)求、獲取數(shù)據(jù)、解析數(shù)據(jù)、多頁爬取、保存數(shù)據(jù),接下來來看看具體的操作過程吧
    2022-01-01
  • python中sets模塊的用法實(shí)例

    python中sets模塊的用法實(shí)例

    這篇文章主要介紹了python中sets模塊的用法實(shí)例,該模塊用來處理集合類型的數(shù)據(jù),在這個(gè)模塊中提供了兩個(gè)集合類:Set(可變集合)和ImmurableSet(不可變集合),本文實(shí)例主要分析了Set(可變集合)的用法,需要的朋友可以參考下
    2014-09-09
  • numpy中生成隨機(jī)數(shù)的幾種常用函數(shù)(小結(jié))

    numpy中生成隨機(jī)數(shù)的幾種常用函數(shù)(小結(jié))

    這篇文章主要介紹了numpy中生成隨機(jī)數(shù)的幾種常用函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python的消息隊(duì)列包SnakeMQ使用初探

    Python的消息隊(duì)列包SnakeMQ使用初探

    使用消息隊(duì)列在數(shù)據(jù)的通信中擁有很多優(yōu)點(diǎn),SnakeMQ是一個(gè)開源的用Python實(shí)現(xiàn)的跨平臺(tái)MQ庫,well,Python的消息隊(duì)列包SnakeMQ使用初探,here we go:
    2016-06-06
  • Python 列表篩選數(shù)據(jù)詳解

    Python 列表篩選數(shù)據(jù)詳解

    這篇文章主要為大家介紹了Python 列表篩選數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 簡(jiǎn)單的Python2.7編程初學(xué)經(jīng)驗(yàn)總結(jié)

    簡(jiǎn)單的Python2.7編程初學(xué)經(jīng)驗(yàn)總結(jié)

    這篇文章主要是作者寫給Python2.7編程初學(xué)者的經(jīng)驗(yàn)總結(jié),側(cè)重于包管理、代碼調(diào)試等實(shí)際使用方面,需要的朋友可以參考下
    2015-04-04
  • Python的Django框架使用入門指引

    Python的Django框架使用入門指引

    這篇文章主要介紹了Python的Django框架使用入門指引,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • 詳解django中視圖函數(shù)的FBV和CBV

    詳解django中視圖函數(shù)的FBV和CBV

    FBV是指視圖函數(shù)以普通函數(shù)的形式,CBV是指視圖函數(shù)以類的方式,這篇文章主要介紹了django中視圖函數(shù)的FBV和CBV,需要的朋友可以參考下
    2022-08-08
  • python如何編寫win程序

    python如何編寫win程序

    在本篇文章里小編給大家分享的是關(guān)于python編寫win程序的實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • python中dict()的高級(jí)用法實(shí)現(xiàn)

    python中dict()的高級(jí)用法實(shí)現(xiàn)

    這篇文章主要介紹了python中dict()的高級(jí)用法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論