本文目錄一覽:
- 1、Python數據分析筆記#7.3.1 字符串對象方法
- 2、python – 去除字符串中特定字符
- 3、Python中中文字符串怎麼處理?
- 4、python之字符串內置函數
- 5、python 字符串提取信息方法總結
Python數據分析筆記#7.3.1 字符串對象方法
「目錄」
數據清洗和準備
Data Cleaning and Prepration
——– 字符串對象方法
字符串對象方法
Python能夠成為流行的數據處理語言的部分原因是其易於處理字符串和文本。大部分文本運算都直接做成了字符串對象的內置方法。
split方法可以 通過指定分隔符對字符串進行切片 。
例如,以逗號分割的字符串可以用split拆分成數段:
strip可以 去除字符串頭尾指定的字符 ,默認是空白符或換行符。
strip常常與split一起使用:
利用 加法可以將字符串連接起來 :
但這種方式並不實用,畢竟字符串多了就很麻煩。一種更快 更符合Python風格的方式是是使用join方法 ,我們向join方法中傳入一個列表或元組:
檢測子串的最佳方法是利用Python的in關鍵字,還可以使用index和find。
index和find會 查找指定值的首次出現的位置 。
find和index的區別是:若找不到字符串,index將會引發一個 異常 ,find則會返回 -1 :
count可以 返回指定字串的出現次數
replace用於將 指定模式替換為另一個模式 (replace will substitute occurrences of one pattern for another)
再記錄幾個Python內置的字符串方法吧。
startswith和endswith: 若字符串以某個前綴(後綴)開頭,則返回True :
lower和uppe: 分別將字母字符轉換為小寫或大寫 。
ljust和rjust: 用空格(或其他字符)填充字符串的空白側以返回符合最低寬度的字符串 。
這章終於還剩兩節就結束了。
-END-
python – 去除字符串中特定字符
一、去掉字符串兩端字符: strip(), rstrip(), lstrip()
s.strip() # 刪除兩邊(頭尾)空字符,默認是空字符
s.lstrip() # 刪除左邊頭部空字符
s.rstrip() # 刪除右邊尾部空字符
s.strip(‘+-‘) # 刪除兩邊(頭尾)加減字符
s.strip(‘-+’).strip() # 刪除兩邊(頭尾)加減和空字符
s.strip(‘x’) # 刪除兩邊特定字符,例如x
二、去掉字符串中間字符: replace(), re.sub()
# 去除\n字符
s = ‘123\n’
s.replace(‘\n’, ”)
import re
# 去除\r\n\t字符
s = ‘\r\nabc\t123\nxyz’
re.sub(‘[\r\n\t]’, ”, s)
三、轉換字符串中的字符:translate()
s = ‘abc123xyz’
# a – x, b – y, c – z,建立字符映射關係
str.maketrans(‘abcxyz’, ‘xyzabc’)
# translate把其轉換成字符串
print(s.translate(str.maketrans(‘abcxyz’, ‘xyzabc’)))
參考鏈接:
Python中中文字符串怎麼處理?
如果處理的字符串中出現中文表示的字符,要想不出錯,就得轉成unicode編碼了。具體的方法有:
1、decode(),將其他邊編碼的字符串轉換成unicode編碼,如str1.decode(‘gb2312’),表示將gb2312編碼的字符串str1轉換成unicode編碼;
2、encode(),將unicode編碼轉換成其他編碼的字符串,如str2.encode(‘gb2312’),表示將unicode編碼的字符串str2轉換成gb2312編碼;
3、unicode(),同decode(),將其他編碼的字符串轉換成unicode編碼,如unicode(str3, ‘gb2312’),表示將gb2312編碼的字符串str3轉換成unicode編碼。
轉碼的時候一定要先搞明白字符串str是什麼編碼,然後decode成unicode,最後再encode成其他編碼。
另外,對一個unicode編碼的字符串在進行解碼會出錯,所以在編碼未知的情況下要先判斷其編碼方式是否為unicode,可以用isinstance(str, unicode)。
不僅是中文,以後處理含非ascii編碼的字符串時,都可以遵循以下步驟:
1、確定源字符的編碼格式,假設是utf8;
2、使用unicode()或decode()轉換成unicode編碼,如str1.decode(‘utf8’),或者unicode(str1, ‘utf8’);
3、把處理後字符串用encode()編碼成指定格式。
python之字符串內置函數
1. 字符串字母處理
2. 字符串填充
str.ljust(width, fillchar)、str.center(width, fillchar)、str.rjust(width, fillchar)
返回一個指定的寬度 width 「居左」/「居中」/「居右」的字符串,如果 width 小於字符串寬度直接返回字符串,否則使用 fillchar 去填充。
3,字符串計數
str.count(sub, start, end)
#統計字符串里某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。
start, end遵循**「左閉右開」**原則。
4. 字符串位置
str.endswith(suffix, start, end)和str.startswith(substr, beg, end)
#判斷字符串是否以指定後綴結尾/開頭,如果以指定後綴「結尾」/「開頭」返回 True,否則返回 False。
5. 字符串查找
6. 字符串判斷
7. 字符串拼接
str.join() #將序列中的元素以指定的字符連接生成一個新的字符串。
s1 = “-” s2 = “” seq = (“r”, “u”, “n”, “o”, “o”, “b”)
# 字符串序列 print (s1.join( seq )) print (s2.join( seq )) r-u-n-o-o-b runoob
8. 統計字符串長度
str.len() #返回對象(字符、列表、元組等)長度或項目個數。
9. 去除字符兩側空格
str.lstrip()、str.rstrip()、str.strip() #截掉字符串「左邊」/「右邊」/「左右」兩側的空格或指定字符。
str0 = ‘ Hello World!’ str0.lstrip() ‘Hello World!’ str1 = ‘aaaa Hello World!’ str1.lstrip(‘a’) ‘ Hello World!’
10. str.maketrans(intab, outtab)和str.translate(table)
str.maketrans()創建字符映射的轉換表
str.maketrans()根據參數table給出的錶轉換字符串的字符。
str.maketrans()傳入的也可以是字典
tab = {‘e’: ‘3’, ‘o’: ‘4’} trantab = str.maketrans(tab) str0.translate(trantab) ‘H3ll4 W4rld!’
11. 字符串替換
str.replace(old, new, max)
12. 字符分割
str.split(str, num)
13. 字符填充
str.zfill(width)
返回指定長度的字符串,原字符串右對齊,前面填充0。
python 字符串提取信息方法總結
在日常項目中,我們經常會使用python從字符串中提取我們想要的信息,以下是各種提取信息方法的總結。
格式: str[beg:end:step]
描述: 字符串[開始索引:結束索引:步長]切取字符串為開始索引到結束索引-1內的字符串步長不指定時步長為1
舉例:
print(str[::2]) //::這裡表示整個字符串,每兩個位置提取一個
print(str[1:3]) //提取第2個到第3個
print(str[2::]) //截取2 – 末尾的字符
本小節介紹了,處理字符串經常用到的一些函數方法。
語法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法檢測字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果包含子字符串返回開始的索引值,否則返回-1。
語法: str.split(str=””, num=string.count(str)).
描述: Python split() 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字符串.返回分割後的字符串列表,該方法可以講字符串轉化為列表處理。
另外的: str.splitlines([keepends])按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。
語法: str.partition(str)
描述: partition() 方法用來根據指定的分隔符將字符串進行分割。如果字符串包含指定的分隔符,則返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。
語法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。
語法: str.strip([chars]);
描述: Python strip() 方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
語法: str.join(sequence)
描述: Python join() 方法用於將序列中的元素以指定的字符連接生成一個新的字符串。
上述方法還有其變形,如str.rfind(),這代表從字符串右邊開始處理,正常是從左邊開始處理。下表是其它常用的python字符串自帶函數方法。
正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。本小節主要介紹Python中常用的正則表達式處理函數和正則表達式的書寫規則。
re 模塊使 Python 語言擁有全部的正則表達式功能。所以在python中使用正則表達式處理函數需要import re
語法: re.search(pattern, string, flags=0)
描述: re.search 掃描整個字符串並返回第一個成功的匹配。匹配成功re.search方法返回一個匹配的對象,否則返回None。
語法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模塊提供了re.sub用於替換字符串中的匹配項。
語法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的語法來表示一個正則表達式:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/186078.html