Python中strip()与split()函数的深度解析与实战应用

巷口听风
巷口听风
发布时间:2026-10-12| 2人浏览过
原创

本文详细解析Python中strip()与split()函数的核心用法。strip()用于删除字符串首尾指定字符或空白符,支持lstrip和rstrip变体;split()则按分隔符将字符串切分为列表,支持指定分割次数及正则表达式。文章通过具体代码示例,展示了如何利用split()结合位运算实现IP地址与整数的相互转换,涵盖常见字符串处理场景。

Python中strip()与split()函数的深度解析与实战应用

许多开发者容易混淆strip和split的功能。实际上,strip意为“修剪”或“删除”,而split意为“分割”。两者功能截然不同:strip用于移除字符串中特定的字符,而split则是依据指定的分隔符将字符串切割成多个部分。接下来将对这两个函数的具体用法进行详细说明。

1. Python strip()函数介绍

函数原型

声明:s代表目标字符串,rm代表需要删除的字符序列。

s.strip(rm):删除字符串s开头和结尾处,且字符位于rm删除序列中的字符。

s.lstrip(rm):仅删除字符串s开头处,且字符位于rm删除序列中的字符。

s.rstrip(rm):仅删除字符串s结尾处,且字符位于rm删除序列中的字符。

注意事项:

(1)当rm参数为空时,默认删除字符串首尾的空白字符(包括换行符'\n'、回车符'\r'、制表符'\t'和空格' ')。

(2)rm删除序列的处理逻辑是:只要字符串边(开头或结尾)上的字符存在于rm序列中,就会被删除,直到遇到不在rm序列中的字符为止。

例如:

>>> a = '  123' 
>>> a 
'  123' 
>>> a.strip() 
'123' 

(2)这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

例如:

>>> a = '123abc' 
>>> a.strip('21') 
'3abc' 
>>> a.strip('12') 
'3abc' 

上述两种写法结果一致。

2. Python split()函数介绍

说明:

Python中没有独立的“字符”类型,只有字符串。此处提到的“字符”仅指长度为1的字符串,这样表述仅为便于理解。

此处如此书写的原因仅为了便于理解,别无他意。

(1)按单一字符进行分割,例如以‘.'为分隔符。

>>> str = ('www.google.com') 
>>> print str 
www.google.com 
>>> str_split = str.split('.') 
>>> print str_split 
['www', 'google', 'com'] 

(2)按单一字符分割,并指定分割次数。例如以‘.'为分隔符,仅分割1次。

>>> str_split = str.split('.',1) 
>>> print str_split 
['www', 'google.com'] 

(3)split()函数后还可接正则表达式,例如:

>>> str_split = str.split('.')[0] 
>>> print str_split 
www 

split分隔后返回一个列表,[0]表示获取该列表的第一个元素;

>>> str_split = str.split('.')[::-1] 
>>> print str_split 
['com', 'google', 'www'] 
>>> str_split = str.split('.')[::] 
>>> print str_split 
['www', 'google', 'com'] 

使用[::-1]按逆序排列,使用[::]按正序排列。

>>> str = str + '.com.cn' 
>>> str 
'www.google.com.com.cn' 
>>> str_split = str.split('.')[::-1] 
>>> print str_split 
['cn', 'com', 'com', 'google', 'www'] 
>>> str_split = str.split('.')[:-1] 
>>> print str_split 
['www', 'google', 'com', 'com'] 

从首个元素开始截取至倒数第二个元素,即排除最后一个元素。

split()函数的典型应用场景之一:IP地址与整数的相互转换。

# 将IP地址转换为整数

>>> ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) 
>>> ip2num('192.168.0.1') 
3232235521 

# 将整数转换为IP地址 # 数值范围在[0, 255^4]之间

>>> num2ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)]) 
>>> num2ip(3232235521) 
'192.168.0.1' 

最后,Python如何实现整数与IP地址的相互转换?

>>> import socket 
>>> import struct 
>>> int_ip = 123456789 
>>> socket.inet_ntoa(struct.pack(‘I',socket.htonl(int_ip)))#整数转换为ip地址 
‘7.91.205.21' 
>>> str(socket.ntohl(struct.unpack(“I”,socket.inet_aton(“255.255.255.255″))[0]))#ip地址转换为整数 
‘4294967295' 

感谢阅读,希望本文能对大家有所帮助,感谢各位对本站的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。