雖然 Python 自然語言處理 (NLP) 有許多函式庫與套件可用, 很少使用低階的內建字串處理函數與字串物件方法, 但字串處理是 NLP 的基礎, 所以我把之前整理的 Python 基本語法筆記中與字串處理相關的函數與方法整理成一張 cheat sheet (小抄) 如下 :
1. 運算子 in :
此運算子用來檢查字串中是否含有指定子字串, 通常與 if 語句搭配使用 :
if "o" in "hello world":
傳回值為 True/False.
2. 內建字串相關函數 :
Python 內建函數中與字串處理相關者有三個 :
內建字串函數 | 說明 |
len(str) | 傳回字串 str 中的字元數 (中文字與轉義字元如 '\n' 都算 1 個) |
ord(char) | 傳回字元 char 的 ASCII 碼 (10 進制) |
chr(code) | 傳回 ASCOII 碼 code 的字元 |
3. 字串物件方法 :
Python 的字串物件提供豐富的方法可用來處理字串 :
大小寫轉換方法 | 說明 |
capitalize() | 將首字母大寫, 其餘小寫 |
lower() | 將全部字元轉成小寫 |
upper() | 將全部字元轉成大寫 |
swapcase() | 將字元大寫變小寫, 小寫變大寫 |
title() | 將每個單字的首字元大寫, 其餘小寫 |
字串檢查方法 | 說明 |
islower() | 字串中的英文字母全部是小寫傳回真, 否則傳回假 |
isupper() | 字串中的英文字母全部是大寫傳回真, 否則傳回假 |
istitle() | 字串中每個單字的首字元大寫其餘小寫傳回真, 否則傳回假 |
isspace() | 字串只含有空白字元 ('\t','\v','\n','\r','\f',' ') 傳回真, 否則傳回假 |
isalpha() | 字串只含有英文字母傳回真, 否則傳回假 |
isdigit() | 字串只含有數字 (0~9) 傳回真, 否則傳回假 |
isdecimal() | 字串只含有 10 進位數字傳回真, 否則傳回假 |
isalnum() | 字串只含有英文字母與數字傳回真, 否則傳回假 |
isidentifier() | 字串是否為合法的識別字 |
isprintable() | 字串只含有可見字元 |
子字串搜尋方法 | 說明 |
find(sub [,start [, end]]) | 尋找子字串 sub, 找到傳回第一組之起始索引, 否則傳回 -1 |
rfind(sub [,start [, end]]) | 尋找子字串 sub, 找到傳回最後一組之起始索引, 否則傳回 -1 |
index(sub [,start [, end]]) | 與 find 相同, 但找不到子字串時會產生 valueError 錯誤 |
rindex(sub [,start [, end]]) | 與 rfind 相同, 但找不到子字串時會產生 valueError 錯誤 |
count(sub [,start [, end]]) | 在字串中尋找子字串 sub, 傳回子字串出現的次數 |
startswith(pfx [,start [, end]]) | 若字串以子字串 pfx 開頭傳回真, 否則傳回假 |
endswith(sfx [,start [, end]]) | 若字串以子字串 sfx 結尾傳回真, 否則傳回假 |
字串物件的去頭去尾方法 | 說明 |
strip([chars]) | 去除字串首尾的指定字元集合 chars, 預設刪除空白 |
lstrip([chars]) | 去除字串開頭的指定字元集合 chars, 預設刪除空白 |
rstrip([chars]) | 去除字串結尾的指定字元集合 chars, 預設刪除空白 |
字串物件的填充方法 | 說明 |
center(width [,fillchar]) | 將字串居中擴展為 width 個字元, 左右以 fillchar 填充, 預設為空格 |
ljust(width [,fillchar]) | 將字串靠左擴展為 width 個字元, 右方以 fillchar 填充, 預設為空格 |
rjust(width [,fillchar]) | 將字串靠右擴展為 width 個字元, 左方以 fillchar 填充, 預設為空格 |
zfill(width) | 在字串左方補 0 使總長度擴展為 width 字元 |
expandtabs([tabsize]) | 將字串中的 tab 字元以 tabsize 個空格取代 |
字串物件的分割方法 | 說明 |
partition(sep) | 以 sep 為界由左至右分割字串為三部分, 傳回 sep 居中的 tuple |
rpartition(sep) | 以 sep 為界由右至左分割字串為三部分, 傳回 sep 居中的 tuple |
split(sep [,maxsplit]) | 以 sep 為界由左至右分割字串 maxsplit 次, 結果以 list 傳回 |
rsplit(sep [,maxsplit]) | 以 sep 為界由右至左分割字串 maxsplit 次, 結果以 list 傳回 |
splitlines([keepends]) | 以 \n 為界分割字串, 預設不保留跳行字元 (keepends=False) |
字串物件之串接取代方法 | 說明 |
join(iterable) | 以字串為分隔字元串接可迭代物件 (list/tuple) 元素為新字串 |
replace(old, new [, count]]) | 將子字串 old 全部用 new 替換, 或指定替換 count 次 |
沒有留言:
張貼留言