更多課程 選擇中心

Python培訓
美國上市教育機構

400-111-8989

Python培訓

Python中字符串的處理技巧有哪些?

  • 發布:Python培訓
  • 來源:職場
  • 時間:2020-03-09 15:54

今天小編要跟大家分享的文章是關于Python中字符串的處理技巧有哪些?正在學習Python或者從事Python工作的小伙伴們來和小編一起看一看吧,希望本篇文章能夠對大家有所幫助。

Python中字符串的處理技巧有哪些?

1. 空格剝離

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

s = ' This is a sentence with whitespace. \n'

print('Strip leading whitespace: {}'.format(s.lstrip()))print('Strip trailing whitespace: {}'.format(s.rstrip()))print('Strip all whitespace: {}'.format(s.strip()))Strip leading whitespace: This is a sentence with whitespace.

Strip trailing whitespace: This is a sentence with whitespace.Strip all whitespace: This is a sentence with whitespace.

對剝離除空格以外的字符感興趣嗎?同樣的方法也很有用,可以通過傳遞想要剝離的字符來剝離字符。

s = 'This is a sentence with unwanted characters.AAAAAAAA'

print('Strip unwanted characters: {}'.format(s.rstrip('A')))

Strip unwanted characters: This is a sentence with unwanted characters.

必要時不要忘記檢查字符串 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

s = 'KDnuggets is a fantastic resource'

print(s.split())

['KDnuggets', 'is', 'a', 'fantastic', 'resource']

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

s = 'these,words,are,separated,by,comma'print('\',\' separated split -> {}'.format(s.split(',')))

s = 'abacbdebfgbhhgbabddba'print('\'b\' separated split -> {}'.format(s.split('b')))

',' separated split -> ['these', 'words', 'are', 'separated', 'by', 'comma']'b' separated split -> ['a', 'ac', 'de', 'fg', 'hhg', 'a', 'dd', 'a']

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

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

join()方法:https://docs.python.org/3/library/stdtypes.html#str.join

s = ['KDnuggets', 'is', 'a', 'fantastic', 'resource']

print(' '.join(s)

KDnuggets is a fantastic resource

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

s = ['Eleven', 'Mike', 'Dustin', 'Lucas', 'Will']

print(' and '.join(s))

Eleven and Mike and Dustin and Lucas and Will

4. 字符串反轉

Python沒有內置的字符串反轉方法。但是,可以先將字符串看做是字符的列表,再利用反轉列表元素的方式進行反轉。

5. 大小寫轉換

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

upper()方法:https://docs.python.org/3/library/stdtypes.html#str.upperlower()方法:https://docs.python.org/3/library/stdtypes.html#str.lowerswapcase()方法:https://docs.python.org/3/library/stdtypes.html#str.swapcase

s = 'KDnuggets'

print('\'KDnuggets\' as uppercase: {}'.format(s.upper()))print('\'KDnuggets\' as lowercase: {}'.format(s.lower()))print('\'KDnuggets\' as swapped case: {}'.format(s.swapcase()))

'KDnuggets' as uppercase: KDNUGGETS'KDnuggets' as lowercase: kdnuggets'KDnuggets' as swapped case: kdNUGGETS

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

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

s1 = 'perpendicular's2 = 'pen's3 = 'pep'

print('\'pen\' in \'perpendicular\' -> {}'.format(s2 in s1))print('\'pep\' in \'perpendicular\' -> {}'.format(s3 in s1))

'pen' in 'perpendicular' -> True'pep' in 'perpendicular' -> False

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

s = 'Does this string contain a substring?'print('\'string\' location -> {}'.format(s.find('string')))print('\'spring\' location -> {}'.format(s.find('spring')))

'string' location -> 10'spring' location -> -1

默認情況下,find()返回子字符串第一次出現的第一個字符的索引,如果找不到子字符串,則返回-1。對這一默認情況拿捏不準時,可以查閱一下相關文檔。

7. 子字符串替換

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

replace()字符串方法:https://docs.python.org/3/library/stdtypes.html#str.replace

s1 = 'The theory of data science is of the utmost importance.'s2 = 'practice'

print('The new sentence: {}'.format(s1.replace('theory', s2)))

The new sentence: The practice of data science is of the utmost importance.

如果同一個子字符串出現多次的話,利用計數參數這一選項,可以指定要進行連續替換的最大次數。

8. 組合多個列表的輸出

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

zip()函數:https://docs.python.org/3/library/functions.html#zip

countries = ['USA', 'Canada', 'UK', 'Australia']cities = ['Washington', 'Ottawa', 'London', 'Canberra']

for x, y in zip(countries, cities): print('The capital of {} is {}.'.format(x, y))

The capital of USA is Washington.The capital of Canada is Ottawa.The capital of UK is London.The capital of Australia is Canberra.

9. 同字母異序詞檢查

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

collections模塊的Counter類:https://docs.python.org/3/library/collections.html#collections.Counter·

from collections import Counterdef is_anagram(s1, s2): return Counter(s1) == Counter(s2)

s1 = 'listen's2 = 'silent's3 = 'runner's4 = 'neuron'

print('\'listen\' is an anagram of \'silent\' -> {}'.format(is_anagram(s1, s2)))print('\'runner\' is an anagram of \'neuron\' -> {}'.format(is_anagram(s3, s4)))

·

'listen' an anagram of 'silent' -> True'runner' an anagram of 'neuron' -> False

10. 回文檢查

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

def is_palindrome(s): reverse = s[::-1] if (s == reverse): return True return False

s1 = 'racecar's2 = 'hippopotamus'

print('\'racecar\' a palindrome -> {}'.format(is_palindrome(s1)))print('\'hippopotamus\' a palindrome -> {}'.format(is_palindrome(s2)))

'racecar' is a palindrome -> True'hippopotamus' is a palindrome -> False

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

以上就是小編今天為大家分享的關于Python中字符串的處理技巧有哪些的文章,希望本篇文章能夠對正在從事Python學習和工作的小伙伴們有所幫助,想要了解更多Python相關知識記得關注達內Python培訓官網。最后祝愿小伙伴們工作順利!

原文鏈接:

https://www.kdnuggets.com/2020/01/python-string-processing-primer.html

【免責聲明:本文圖片及文字信息均由小編轉載自網絡,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除?!?

預約申請免費試聽課

填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

上一篇:Python新手要掌握的實用技巧
下一篇:Python面試的常見問題有哪些

學習Python之后能做什么?

提高Python開發者工作效率的方法有哪些

Python開發者要知道的Python GUI 庫有哪些

Python面試的常見問題有哪些

選擇城市和中心
黑龍江省

吉林省

河北省

湖南省

貴州省

云南省

廣西省

海南省

4438全国大成网人网站