分割、合并字符串

自学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(item[1:]) # 输出每个好友名时,去掉@符号

运行结果如图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 输出想要@的好友

相关推荐
九河云44 分钟前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
CoderIsArt1 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
深度学习lover1 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck2 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei2 小时前
java的类加载机制的学习
java·学习
API快乐传递者2 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络