python中split() 和 strip()函數(shù)的結(jié)合使用
一、strip () 函數(shù):清理字符串首尾的 “多余字符”
1. 核心作用
strip() 是字符串的成員方法,用于刪除字符串開頭和結(jié)尾的指定字符(默認(rèn)刪除空格、換行符 \n、制表符 \t、回車符 \r 等空白字符),不會改變字符串中間的內(nèi)容。
2. 語法與參數(shù)
str.strip([chars])
- 參數(shù):
chars(可選)→ 字符串類型,指定要刪除的字符集合(不是固定字符串,而是 “只要首尾出現(xiàn)集合中的任意字符就刪除”); - 返回值:新的字符串(原字符串不變,Python 字符串是不可變類型);
- 衍生方法:
lstrip():只刪除開頭的指定字符;rstrip():只刪除結(jié)尾的指定字符。
3. 基礎(chǔ)示例(默認(rèn)刪除空白符)
# 原始字符串(首尾有空格、換行符,中間有空格)
s = " \t Hello World\n "
print(f"原始字符串(帶占位符):[{s}]") # 用[]包裹更易看出空白
# strip():刪除首尾所有空白符
s_stripped = s.strip()
print(f"strip() 處理后:[{s_stripped}]") # [Hello World]
# lstrip():只刪開頭空白
s_lstripped = s.lstrip()
print(f"lstrip() 處理后:[{s_lstripped}]") # [Hello World
# ]
# rstrip():只刪結(jié)尾空白
s_rstripped = s.rstrip()
print(f"rstrip() 處理后:[{s_rstripped}]") # [ Hello World]輸出:
原始字符串(帶占位符):[ Hello World
]
strip() 處理后:[Hello World]
lstrip() 處理后:[Hello World
]
rstrip() 處理后:[ Hello World]
4. 進(jìn)階示例(指定刪除的字符)
chars 參數(shù)是 “字符集合”,不是固定字符串,會逐個匹配首尾的字符并刪除,直到遇到不在集合中的字符為止。
# 示例1:刪除首尾的指定字符(數(shù)字+下劃線)
s1 = "__123Python678__"
s1_stripped = s1.strip("_0123456789")
print(f"s1 處理后:{s1_stripped}") # Python
# 示例2:刪除首尾的特定符號(注意:字符順序不影響)
s2 = "###@@@Hello@@@###"
s2_stripped = s2.strip("#@") # 只要是#或@,首尾都刪
print(f"s2 處理后:{s2_stripped}") # Hello
# 示例3:中間的字符不會被刪
s3 = "aabbaHelloabbaa"
s3_stripped = s3.strip("ab")
print(f"s3 處理后:{s3_stripped}") # Hello5. 常見坑點
誤區(qū) 1:strip("abc") 不是刪除首尾的 “abc” 字符串,而是刪除首尾的 a/b/c 任意字符;
s = "abc123abc"
print(s.strip("abc")) # 123(正確),而非 123abc(誤區(qū))誤區(qū) 2:strip() 會修改原字符串 → 錯誤,Python 字符串不可變,所有字符串方法都返回新字符串;
s = " test " s.strip() print(s) # 仍為 " test ",需重新賦值:s = s.strip()
二、split () 函數(shù):拆分字符串為列表
1. 核心作用
split() 是字符串的成員方法,用于將字符串按指定的分隔符拆分成一個列表,拆分后分隔符會被丟棄。
2. 語法與參數(shù)
str.split(sep=None, maxsplit=-1)
- 參數(shù) 1:
sep(可選)→ 分隔符,字符串類型;默認(rèn)None(按任意空白符拆分,多個連續(xù)空白符視為一個); - 參數(shù) 2:
maxsplit(可選)→ 最大拆分次數(shù),整數(shù)類型;默認(rèn)-1(無限制,拆分所有符合條件的位置); - 返回值:拆分后的字符串列表。
3. 基礎(chǔ)示例(默認(rèn)按空白符拆分)
當(dāng) sep=None 時,會自動忽略多個連續(xù)的空白符(空格、\n、\t 等),只拆分有效內(nèi)容。
# 示例1:多個連續(xù)空格 s1 = "Python Java C++ Go" print(s1.split()) # ['Python', 'Java', 'C++', 'Go'] # 示例2:混合空白符(空格+制表符+換行符) s2 = "a\tb c\nd" print(s2.split()) # ['a', 'b', 'c', 'd'] # 示例3:空字符串拆分(返回只含原字符串的列表) s3 = "" print(s3.split()) # [](注意:空字符串按默認(rèn)拆分返回空列表)
4. 進(jìn)階示例(指定分隔符)
(1)指定單個分隔符
# 示例1:按逗號拆分(CSV數(shù)據(jù)常用)
s4 = "張三,28,銷售,8000"
print(s4.split(",")) # ['張三', '28', '銷售', '8000']
# 示例2:按固定字符串拆分(不是字符集合)
s5 = "Python|Java|C++|Go"
print(s5.split("|")) # ['Python', 'Java', 'C++', 'Go']
# 示例3:分隔符不存在(返回只含原字符串的列表)
s6 = "HelloWorld"
print(s6.split(",")) # ['HelloWorld'](2)指定最大拆分次數(shù)(maxsplit)
# 示例1:maxsplit=2(只拆分前2個分隔符)
s7 = "a,b,c,d,e"
print(s7.split(",", maxsplit=2)) # ['a', 'b', 'c,d,e']
# 示例2:maxsplit=0(不拆分)
print(s7.split(",", maxsplit=0)) # ['a,b,c,d,e']5. 衍生方法:rsplit ()
rsplit() 與 split() 功能一致,但 maxsplit 是從右往左拆分:
s8 = "a,b,c,d,e"
print(s8.split(",", maxsplit=2)) # ['a', 'b', 'c,d,e'](從左拆)
print(s8.rsplit(",", maxsplit=2)) # ['a,b,c', 'd', 'e'](從右拆)6. 常見坑點
誤區(qū) 1:拆分后分隔符保留 → 錯誤,分隔符會被完全丟棄;
s = "1-2-3"
print(s.split("-")) # ['1','2','3'](無分隔符)誤區(qū) 2:按空字符串拆分 → 報錯(ValueError: empty separator);
# s.split("") # 直接報錯,如需逐個字符拆分用 list(s)
s = "abc"
print(list(s)) # ['a','b','c'](正確方式)誤區(qū) 3:拆分含空白的字段(如 CSV 中 張三, 28)→ 需結(jié)合 strip() 清洗;
s9 = "張三, 28, 銷售, 8000"
# 先拆分,再逐個清洗首尾空格
result = [item.strip() for item in s9.split(",")]
print(result) # ['張三', '28', '銷售', '8000']三、split () + strip () 組合使用(實戰(zhàn)高頻場景)
實際開發(fā)中,這兩個函數(shù)常結(jié)合使用,解決 “字符串有多余空白 + 需要拆分” 的問題,比如解析日志、清洗爬蟲數(shù)據(jù):
示例 1:解析日志字符串
# 原始日志(首尾有空格,分隔符是多個空格+|)
log = " 2026-03-01 | INFO | 用戶登錄成功 "
# 步驟1:清理首尾空白 → 步驟2:按|拆分 → 步驟3:清洗每個字段的空白
log_clean = [item.strip() for item in log.strip().split("|")]
print(log_clean) # ['2026-03-01', 'INFO', '用戶登錄成功']示例 2:清洗用戶輸入的多值內(nèi)容
# 用戶輸入(用逗號/空格混合分隔,首尾有空白)
user_input = " Python, Java , C++ | Go "
# 先統(tǒng)一替換非逗號分隔符為逗號,再清洗+拆分
input_clean = user_input.strip().replace(" | ", ",").replace(" ", "")
result = input_clean.split(",")
print(result) # ['Python', 'Java', 'C++', 'Go']總結(jié)
核心要點回顧
strip () 系列:
- 作用:刪除字符串首尾的指定字符(默認(rèn)空白符),中間字符不受影響;
- 衍生:
lstrip()(刪開頭)、rstrip()(刪結(jié)尾); - 注意:
chars是字符集合,不是固定字符串,且不修改原字符串。
split () 系列:
- 作用:按指定分隔符拆分字符串為列表,分隔符會被丟棄;
- 默認(rèn):
sep=None按任意空白符拆分(多個空白視為一個); - 衍生:
rsplit()從右往左拆分,適合指定maxsplit的場景; - 注意:不能按空字符串拆分,拆分含空白的字段需結(jié)合
strip()。
組合使用:拆分前先用
strip()清理首尾空白,拆分后用列表推導(dǎo)式 +strip()清洗每個字段,是文本清洗的標(biāo)準(zhǔn)流程。
到此這篇關(guān)于python中split() 和 strip()函數(shù)的結(jié)合使用的文章就介紹到這了,更多相關(guān)python split() strip()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python虛擬環(huán)境virtualenv的安裝與使用
virtualenv用于創(chuàng)建獨立的Python環(huán)境,多個Python相互獨立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級不影響其他應(yīng)用2017-09-09
Python中使用異常處理來判斷運行的操作系統(tǒng)平臺方法
這篇文章主要介紹了Python中使用異常處理來判斷運行的操作系統(tǒng)平臺方法,這個方法比較新穎,,需要的朋友可以參考下2015-01-01
Windows環(huán)境下Python3.6.8 importError: DLLload failed:找不到指定的模塊
這篇文章主要介紹了Windows環(huán)境下Python3.6.8 importError: DLLload failed:找不到指定的模塊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

