本文目錄一覽:
- 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-tw/n/186078.html