展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > python中split()和strip()函数的结合使用

python中split()和strip()函数的结合使用

strip()函数清理字符串首尾指定字符(默认空白符),split()函数按分隔符拆分字符串(默认连续空白符视为一个)。两者结合使用可高效清洗文本数据:先strip()清理首尾,再split()拆分,最后用列表推导式对每个元素strip()去除多余空格。注意strip()识别字符集合而非子串,split()不能传空字符串,且字符串不可变需重新赋值。

在日常的Python开发中,处理文本数据几乎是家常便饭。无论是清洗日志、解析配置文件,还是从杂乱的网页中提取关键信息,字符串操作都是绕不开的基本功。而在这门基本功里,strip() 和 split() 这两个方法,绝对算得上是最被高频使用,却也最容易因细节疏忽而“翻车”的两个函数。

它们一个负责“修剪”,一个负责“拆分”,配合起来能解决大量文本清洗的痛点。但你真的完全搞懂它们的脾气了吗?比如,strip("abc") 到底删了什么?split() 默认拆分时,连续的空格怎么处理?如果你心里没底,那这篇文章正好适合你,咱们一起来把这俩函数吃透。

一、strip () 函数:清理字符串首尾的 “多余字符”

1. 核心作用

简单来说,strip() 就是字符串的“去角质”工具。它专门用于搞定字符串开头和结尾的指定字符,默认情况下,它会干掉空格、换行符、制表符这些你看得见或看不见的“空白垃圾”。但要记住,它非常克制,绝不会动字符串中间的内容一根汗毛。

python中split()和strip()函数的结合使用

2. 语法与参数

str.strip([chars]) 
  • 参数:chars 是可选的。注意,它定义的是一个字符集合,而不是一个固定的子字符串。翻译乘人话就是:只要你开头或结尾出现了集合里的任意一个字符,我就删,删到没有为止。
  • 返回值:返回一个全新的字符串。Python 字符串是不可变的,这点务必牢记,原地修改是不会生效的。
  • 衍生方法:
    • lstrip():只盯着开头删,结尾的不管。
    • rstrip():只盯着结尾删,开头的不管。

3. 基础示例(默认删除空白符)

看代码最直观。咱们用方括号把字符串包起来,这样空白字符就无处遁形了。

# 原始字符串(首尾有空格、换行符,中间有空格)
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():只删结尾空白
s_rstripped = s.rstrip()
print(f"rstrip() 处理后:[{s_rstripped}]")  # [ 	  Hello World]

输出:

原始字符串(带占位符):[ Hello World

]

strip() 处理后:[Hello World]

lstrip() 处理后:[Hello World

]

rstrip() 处理后:[ Hello World]

4. 进阶示例(指定删除的字符)

重点来了。当 chars 参数存在时,它的行为是“逐个挑刺”。只要首尾的字符落在了这个集合里,它就删除,然后检查下一个,直到遇到一个不在集合里的字符才停下来。

# 示例1:删除首尾的指定字符(数字+下划线)
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}")  # Hello

5. 常见坑点

这里有两个非常经典的“想当然”错误。

误区 1:以为 strip("abc") 是去匹配并删除字符串首尾精确的 "abc" 子串。错啦!它是把 a、b、c 三个字符拆开来看,只要有任何一个出现在首尾,就直接干掉。

s = "abc123abc"
print(s.strip("abc"))  # 123(正确),而非 123abc(误区)

误区 2:觉得执行了 s.strip(),变量 s 的值就变了。这又是一个经典误解。字符串是不可变的,你必须把返回值重新赋值给变量才行:s = s.strip()。

s = "  test  "
s.strip()
print(s)  # 仍为 "  test  ",需重新赋值:s = s.strip()

二、split () 函数:拆分字符串为列表

1. 核心作用

如果说 strip() 是做“减法”,那 split() 就是做“分割”。它像一把刀,按你指定的分隔符,把字符串切成一块块的列表元素,而分隔符本身会被丢弃。

2. 语法与参数

str.split(sep=None, maxsplit=-1) 
  • 参数 1:sep,分隔符。如果不给,默认是 None,这时候它的规则是:按任意空白符(空格、换行、制表符等)拆分,并且会把多个连续的空白符当成一个来对待。
  • 参数 2:maxsplit,最大拆分次数。默认是 -1,意思是“拆到不能再拆为止”。你可以指定一个数字来限制拆分的次数,这在处理某些有固定结构的字符串时非常有用。
  • 返回值:一个包含拆分后子串的列表。

3. 基础示例(默认按空白符拆分)

注意看默认行为,对于“脏”的空白字符串,它的处理非常智能。

# 示例1:多个连续空格
s1 = "Python Ja va C++  Go"
print(s1.split())  # ['Python', 'Ja va', 'C++', 'Go']
# 示例2:混合空白符(空格+制表符+换行符)
s2 = "a\tb  c\nd"
print(s2.split())  # ['a', 'b', 'c', 'd']
# 示例3:空字符串拆分(返回只含原字符串的列表)
s3 = ""
print(s3.split())  # [](注意:空字符串按默认拆分返回空列表)

4. 进阶示例(指定分隔符)

(1)指定单个分隔符

这是最常用的方式,比如解析CSV数据。

# 示例1:按逗号拆分(CSV数据常用)
s4 = "张三,28,销售,8000"
print(s4.split(","))  # ['张三', '28', '销售', '8000']
# 示例2:按固定字符串拆分(不是字符集合)
s5 = "Python|Ja va|C++|Go"
print(s5.split("|"))  # ['Python', 'Ja va', 'C++', 'Go']
# 示例3:分隔符不存在(返回只含原字符串的列表)
s6 = "HelloWorld"
print(s6.split(","))  # ['HelloWorld']

(2)指定最大拆分次数(maxsplit)

当你想保留后面部分作为一个整体时,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 时,rsplit() 是从字符串右边开始找分隔符进行拆分。

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. 常见坑点

这几个坑也是新人容易掉进去的。

误区 1:以为拆分后分隔符还被保留。不存在的,分隔符会被毫不留情地丢弃。

s = "1-2-3"
print(s.split("-"))  # ['1','2','3'](无分隔符)

误区 2:试图用空字符串 "" 作为分隔符。Python 会直接报错 ValueError: empty separator。如果你想把字符串切分成单个字符,正确的姿势是用 list(s)。

# s.split("")  # 直接报错,如需逐个字符拆分用 list(s)
s = "abc"
print(list(s))  # ['a','b','c'](正确方式)

误区 3:拆分后的数据里带着多余的空格。比如 CSV 里的 "张三, 28",直接拆分你会得到一个 " 28"。这就需要我们下一节的大招——组合使用。

s9 = "张三, 28, 销售, 8000"
# 先拆分,再逐个清洗首尾空格
result = [item.strip() for item in s9.split(",")]
print(result)  # ['张三', '28', '销售', '8000']

三、split () + strip () 组合使用(实战高频场景)

官方认证的王炸组合。在实际项目里,你拿到的原始数据很少是干干净净的。解决“字符串有多余空白 + 需要拆分”这个经典问题,靠的就是这套组合拳。

示例 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:清洗用户输入的多值内容

# 用户输入(用逗号/空格混合分隔,首尾有空白)
user_input = "  Python, Ja va  , C++ | Go  "
# 先统一替换非逗号分隔符为逗号,再清洗+拆分
input_clean = user_input.strip().replace(" | ", ",").replace(" ", "")
result = input_clean.split(",")
print(result)  # ['Python', 'Ja va', 'C++', 'Go']

总结

核心要点回顾

最后,我们用最精炼的语言回顾一下这两个函数的精髓:

  1. strip () 系列:专门治理字符串首尾的“脏东西”。注意,它识别的是字符集合,不是固定字符串。而且,它是个“君子动口不动手”,必须重新赋值才有用。

    • lstrip():删开头
    • rstrip():删结尾
  2. split () 系列:字符串的“分割线”。默认情况下,它能把被各种空白字符搅乱的字符串,优雅地拆成一个列表。记住,分隔符本身会被丢弃,且不能传空字符串。

    • rsplit():从右往左拆,在限定拆分次数时尤其好用。
  3. 组合使用:无论是在数据处理还是日志清洗中,“strip() + split() + 列表推导式”这套组合拳,都是文本清洗领域的标准作业流程。先用 strip() 清扫大门,再用 split() 的内部切割,最后用 strip() 逐块抛光,一套下来,数据焕然一新。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
精品专题 更多
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

Mac软件 更多
photoshop
photoshop

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。