你是否在處理文本數據時被字符串分割搞得頭大?是否因為split()的“坑”導致程序報錯?
今天,一篇搞定Python字符串分割的終極指南,建議收藏!??
一、快速入門:split()能做什么?
假設你有一串文本: "用戶A,用戶B,用戶C"
想拆成列表 ["用戶A", "用戶B", "用戶C"]
,split()就是你的救星!
核心語法:
字符串.split(分隔符, 最大分割次數)
str1 = "用戶A, 用戶B, 用戶C"
print(str1.split(",")) # ['用戶A', ' 用戶B', ' 用戶C']
二、高頻場景:從入門到進階
1. 基礎用法:按空格切分
text = "Hello Python World"
print(text.split()) # 輸出:['Hello', 'Python', 'World']
?? 關鍵點:
2. 指定分隔符:處理CSV/日志
csv_data = "2023-08-01,訂單A,成功"
print(csv_data.split(',')) # ['2023-08-01', '訂單A', '成功']
?? 注意坑點:
若分隔符連續(xù)出現,會產生空字符串!
text = "蘋果,,橘子"
print(text.split(',')) # ['蘋果', '', '橘子']
3. 限制分割次數:提取關鍵信息
log = "ERROR: 服務器崩潰 | 代碼行: 123 | 時間: 2025-04-08"
# 只按第一個"|"分割
result = log.split(' | ', 1)
print(result) # ['ERROR: 服務器崩潰', '代碼行: 123 | 時間: 2025-04-08']
?? 適用場景:解析結構化文本,避免過度分割!
三、避坑指南:這些坑你踩過嗎?
1. 空字符串的陷阱
若分隔符在開頭/結尾,split()會生成空元素:
text = ",開頭,中間,結尾,"
print(text.split(',')) # ['', '開頭', '中間', '結尾', '']
解決方案:
用列表推導式過濾空值!
text = ",開頭,中間,結尾,"
print(text.split(',')) # ['', '開頭', '中間', '結尾', '']
clean_list = [x for x in text.split(',') if x]
print(clean_list) # ['開頭', '中間', '結尾']
2. 想按單個字符切分?別用split()!
text = "ABC"
# 錯誤寫法:text.split('') → 報錯!
# 正確寫法:
print(list(text)) # ['A', 'B', 'C']
3. 多行文本處理:split()不夠用?
用 splitlines()
更專業(yè)!支持\n
、\r
、\r\n
全兼容:
text = "第一行\(zhòng)n第二行\(zhòng)r\n第三行"
print(text.splitlines()) # ['第一行', '第二行', '第三行']
四、進階技巧:正則表達式分割
復雜分隔符(如多個符號組合),用 re.split()
更高效!
import re
text = "價格:¥199;折扣=50%|庫存=100"
result = re.split(r'[;|=:]', text)
print(result)
# 輸出:['價格', '¥199', '折扣', '50%', '庫存', '100']
你在使用split()時還遇到過哪些“坑”?歡迎留言討論!??