分割、合并字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在Python中,字符串对象提供了分割和合并字符串的方法。分割字符串是把字符串分割为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作。

(1)分割字符串

字符串对象的split()方法可以实现字符串分割,也就是把一个字符串按照指定的分隔符切分为字符串列表。该列表的元素中,不包括分隔符。split()方法的语法格式如下:

str.split(sep, maxsplit)

参数说明:

l str:表示要进行分割的字符串。

l sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行"\n"、制表符"\t"等)。

l maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit+1。

l 返回值:分隔后的字符串列表。

说明:在split()方法中,如果不指定sep参数,那么也不能指定maxsplit参数。

例如,定义一个保存明日学院网址的字符串,然后应用split()方法根据不同的分隔符进行分割,代码如下:

str1 = '明 日 学 院 官 网 >>> www.mingrisoft.com'

print('原字符串:',str1)

list1 = str1.split() # 采用默认分隔符进行分割

list2 = str1.split('>>>') # 采用多个字符进行分割

list3 = str1.split('.') # 采用.号进行分割

list4 = str1.split(' ',4) # 采用空格进行分割,并且只分割前4个

print(str(list1) + '\n' + str(list2) + '\n' + str(list3) + '\n' + str(list4))

list5 = str1.split('>') # 采用>进行分割

print(list5)

上面的代码在执行后,将显示以下内容:

原字符串: 明 日 学 院 官 网 >>> www.mingrisoft.com

'明', '日', '学', '院', '官', '网', '\>\>\>', 'www.mingrisoft.com'

'明 日 学 院 官 网 ', ' www.mingrisoft.com'

'明 日 学 院 官 网 \>\>\> www', 'mingrisoft', 'com'

'明', '日', '学', '院', '官 网 \>\>\> www.mingrisoft.com'

'明 日 学 院 官 网 ', ' ', ' ', ' www.mingrisoft.com'

说明:在使用split()方法时,如果不指定参数,默认采用空白符进行分割,这时无论有几个空格或者空白符都将作为一个分隔符进行分割。例如,上面示例中,在"网"和">"之间有两个空格,但是分割结果(第二行内容)中两个空格都被过滤掉了。如果指定一个分隔符,那么当这个分隔符出现多个时,就会每个分隔一次,没有得到内容的,将产生一个空元素。例如,上面结果中的最后一行,就出现了两个空元素。

场景模拟:微博的@好友栏目中,输入"@明日科技 @扎克伯格 @俞敏洪"(好友名称之间用一个空格区分),同时@三个好友。

实例03 输出被@的好友名称

在IDLE中创建一个名称为atfriend.py的文件,然后在该文件中定义一个字符串,内容为" @明日科技 @扎克伯格 @俞敏洪",然后使用split()方法对该字符串进行分割,从而获取出好友名称,并输出,代码如下:

str1 = '@明日科技 @扎克伯格 @俞敏洪'

list1 = str1.split(' ') # 用空格分割字符串

print('您@的好友有:')

for item in list1:

print(item1:) # 输出每个好友名时,去掉@符号

运行结果如图7所示。

图7 输出被@的好友

(2)合并字符串

合并字符串与拼接字符串不同,它会将多个字符串采用固定的分隔符连接在一起。例如,字符串"绮梦 * 冷伊一 * 香凝 * 黛兰",就可以看作是通过分隔符" * "将'绮梦', '冷伊一', '香凝', '黛兰'列表合并为一个字符串的结果。

合并字符串可以使用字符串对象的join()方法实现,语法格式如下:

strnew = string.join(iterable)

参数说明:

l strnew:表示合并后生成的新字符串。

l string:字符串类型,用于指定合并时的分隔符。

l iterable:可迭代对象,该迭代对象中的所有元素(字符串表示)将被合并为一个新的字符串。string作为边界点分割出来。

场景模拟:微博的@好友栏目中,输入"@明日科技 @扎克伯格 @俞敏洪"(好友名称之间用一个空格区分),即可同时@三个好友。现在想要@好友列表中的全部好友,所以需要组合一个类似的字符串。

实例04 通过好友列表生成全部被@的好友

在IDLE中创建一个名称为atfriend-join.py的文件,然后在该文件中定义一个列表,保存一些好友名称,然后使用join()方法将列表中每个元素用空格+@符号进行连接,再在连接后的字符串前添加一个@符号,最后输出,代码如下:

list_friend = '明日科技','扎克伯格','俞敏洪','马云','马化腾' # 好友列表

str_friend = ' @'.join(list_friend) # 用空格+@符号进行连接

at = '@'+str_friend # 由于使用join()方法时,第一个元素前不加分隔符,所以需要在前面加上@符号

print('您要@的好友:',at)

运行结果如图8所示。

图8 输出想要@的好友

相关推荐
微学AI3 分钟前
内网穿透的应用-把飞牛NAS变成家庭录像中心:EasyNVR部署与远程回放实战
开发语言·php
海兰7 分钟前
【高速缓存】RedisVL 高级查询(全文搜索、混合搜索和 多向量搜索)
数据库·人工智能·redis·缓存
峥嵘life9 分钟前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
DBA_G12 分钟前
GBase 8s数据库大对象存储详解
数据库
BerryS3N14 分钟前
深度解析:从零构建生产级大模型 RAG(检索增强生成)系统全栈指南
开发语言·python·ai
weixin_BYSJ198721 分钟前
「课设设计」springboot校园超市助购系统26449 (附源码)
java·javascript·spring boot·python·django·flask·php
sbjdhjd25 分钟前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
栋***t26 分钟前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
今儿敲了吗29 分钟前
Python——函数基础
开发语言·笔记·python
CHANG_THE_WORLD35 分钟前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法