中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

秘籍:10個(gè)Python字符串處理技巧(附代碼)

2020-03-03    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
作者: 馬修·梅奧 翻譯:陳之炎  來源:數(shù)據(jù)派THU

本文為你介紹利用Python處理字符串的一些基本操作。

在探尋文本分析途徑時(shí)卻不知從何下手,該怎么辦?那么可以通過這個(gè)字符串處理入門教程,來了解一下利用Python處理字符串的一些基本操作。

當(dāng)前,自然語言處理和文本分析是研究和應(yīng)用的熱點(diǎn)領(lǐng)域。這些領(lǐng)域包括各種具體的技能和概念,在深入具體實(shí)踐之前需要對(duì)它們有徹底的理解,為此,必須掌握一些基本的字符串操作和處理技巧。

在我看來,必須掌握兩種字符串處理技巧:首先是正則表達(dá)式,一種基于模式的文本匹配方法。關(guān)于正則表達(dá)式有許多精彩的介紹,但是喜歡通過視頻學(xué)習(xí)的朋友仍然可以從這個(gè)視頻中受益良多:

fast.ai代碼 -初涉自然語言處理:

https://youtu.be/Q1zLqfnEXdw?list=PLtmWHNX-gukKocXQOkQjuVxglSDYWsSh9&t=630

另一個(gè)必備的字符串處理技能是:能夠利用給定編程語言的標(biāo)準(zhǔn)庫(kù)進(jìn)行基本的字符串操作。為此,本文便是一個(gè)簡(jiǎn)短的Python字符串處理入門教程,旨在為那些以文本分析作為職業(yè)的人士尋求更為深入的研究,拋磚引玉。

想對(duì)公司所有的文本有深入理解,發(fā)掘出其中的價(jià)值嗎?首先,應(yīng)了解最基本的基礎(chǔ)知識(shí),下面,來了解一下這些初學(xué)者的技巧。

注意,有實(shí)際意義的文本分析遠(yuǎn)遠(yuǎn)超出字符串處理的范疇,那些更先進(jìn)的核心技術(shù)可能不需要你頻繁的親自對(duì)文本進(jìn)行操作。然而,對(duì)于一個(gè)成功的文本分析項(xiàng)目來說,文本數(shù)據(jù)預(yù)處理是非常重要而耗時(shí)的環(huán)節(jié),所以,本文涵蓋的字符串處理技能將很有價(jià)值。在基礎(chǔ)層面上理解文本的計(jì)算處理對(duì)于理解更為先進(jìn)的文本分析技術(shù)同樣重要。

文中的一些示例使用Python標(biāo)準(zhǔn)庫(kù):string module字符串模塊,為此,最好準(zhǔn)備好string module以備參考。

string module字符串模塊鏈接:

https://docs.python.org/2/library/string.html

1. 空格剝離

空格剝離是字符串處理的一種基本操作,可以使用lstrip()方法(左)剝離前導(dǎo)空格,使用rstrip()(右)方法對(duì)尾隨空格進(jìn)行剝離,以及使用strip()剝離前導(dǎo)和尾隨空格。

 

 

對(duì)剝離除空格以外的字符感興趣嗎?同樣的方法也很有用,可以通過傳遞想要?jiǎng)冸x的字符來剝離字符。

 

 

必要時(shí)不要忘記檢查字符串 format()文檔。

format()文檔:

https://docs.python.org/3/library/stdtypes.html#str.format

2. 字符串拆分

利用Python中的 split() 方法可以輕易將字符串拆分成較小的子字符串列表。

split() 方法:

https://docs.python.org/3/library/stdtypes.html#str.split

 

 

默認(rèn)情況下,split()根據(jù)空格進(jìn)行拆分,但同樣也可以將其他字符序列傳遞給split()進(jìn)行拆分。

 

 

3. 將列表元素合成字符串

需要實(shí)現(xiàn)上述操作的一個(gè)逆向操作?沒問題,利用Python中的join()方法便可將列表中的元素合成一個(gè)字符串。

join()方法:

https://docs.python.org/3/library/stdtypes.html#str.join

 

 

事實(shí)果真如此!如果想將列表元素用空格以外的東西連接起來?這可能有點(diǎn)陌生,但也很容易實(shí)現(xiàn)。

 

 

4. 字符串反轉(zhuǎn)

Python沒有內(nèi)置的字符串反轉(zhuǎn)方法。但是,可以先將字符串看做是字符的列表,再利用反轉(zhuǎn)列表元素的方式進(jìn)行反轉(zhuǎn)。

5. 大小寫轉(zhuǎn)換

利用upper(), lower(),和swapcase()方法可以進(jìn)行大小寫之間的轉(zhuǎn)換。

upper()方法:

https://docs.python.org/3/library/stdtypes.html#str.upper

lower()方法:

https://docs.python.org/3/library/stdtypes.html#str.lower

swapcase()方法:

https://docs.python.org/3/library/stdtypes.html#str.swapcase

 

 

6. 檢查是否有字符串成員

在Python中檢查字符串成員的最簡(jiǎn)單方法是使用in運(yùn)算符,語法與自然語言非常類似。

 

 

如果對(duì)找到字符串中子字符串的位置更感興趣(而不是簡(jiǎn)單地檢查是否包含子字符串),則利用find()方法可能更為有效。

 

 

默認(rèn)情況下,find()返回子字符串第一次出現(xiàn)的第一個(gè)字符的索引,如果找不到子字符串,則返回-1。對(duì)這一默認(rèn)情況拿捏不準(zhǔn)時(shí),可以查閱一下相關(guān)文檔。

7. 子字符串替換

找到子字符串之后,如果想替換這一子字符串,該怎么辦?Python 中的replace()字符串方法將解決這一問題。

replace()字符串方法:

https://docs.python.org/3/library/stdtypes.html#str.replace

 

 

如果同一個(gè)子字符串出現(xiàn)多次的話,利用計(jì)數(shù)參數(shù)這一選項(xiàng),可以指定要進(jìn)行連續(xù)替換的最大次數(shù)。

8. 組合多個(gè)列表的輸出

如何以某種元素的方式將多個(gè)字符串列表組合在一起?利用zip()函數(shù)便沒問題。

zip()函數(shù):

https://docs.python.org/3/library/functions.html#zip

 

 

9. 同字母異序詞檢查

想檢查一對(duì)字符串中,其中一個(gè)字符串是否是另一個(gè)字符串的同字母異序詞?從算法上來講,需要做的是對(duì)每個(gè)字符串中每個(gè)字母的出現(xiàn)次數(shù)進(jìn)行計(jì)數(shù),再檢查二者計(jì)數(shù)值是否相等,直接使用collections模塊的Counter類便可實(shí)現(xiàn)。

collections模塊的Counter類:

https://docs.python.org/3/library/collections.html#collections.Counter

 

 

10. 回文檢查

如果想檢查給定的單詞是否是回文,怎么辦?從算法上看,需要?jiǎng)?chuàng)建一個(gè)單詞的反轉(zhuǎn),然后利用 == 運(yùn)算符來檢查這2個(gè)字符串(原始字符串和反向字符串)是否相等。

 

 

雖然掌握這些字符串處理“技巧”之后,并不意味著你已經(jīng)成為了文本分析或自然語言處理專家,但這些技巧可能會(huì)激發(fā)出深入探究自然語言處理領(lǐng)域的興趣,并掌握最終成為專家所必備的技能。

相關(guān)文獻(xiàn):

文本數(shù)據(jù)預(yù)處理:Python演練

https://www.kdnuggets.com/2018/03/text-data-preprocessing-walkthrough-python.html

Python中的·文本預(yù)處理:步驟、工具和示例https://www.kdnuggets.com/2018/11/text-preprocessing-python.html

文本數(shù)據(jù)分析完整探索與可視化:可視化與NLP相結(jié)合https://www.kdnuggets.com/2019/05/complete-exploratory-data-analysis-visualization-text-data.html

原文標(biāo)題:10 Python String Processing Tips & Tricks

原文鏈接:https://www.kdnuggets.com/2020/01/python-string-processing-primer.html

標(biāo)簽: Python

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:數(shù)據(jù)越多能耗越大?《科學(xué)》最新算法模型揭示,全球數(shù)據(jù)中心能耗并沒有想得那么多

下一篇:大數(shù)據(jù)、人工智能、無人機(jī)鏈等在抗擊新冠肺炎疫情中大顯身手