分割、合并字符串

自学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 输出想要@的好友

相关推荐
小宋10213 分钟前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
serve the people3 分钟前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端
m0_609000426 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
qmx_071 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
小安运维日记1 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
waterHBO1 小时前
python 爬虫 selenium 笔记
爬虫·python·selenium
为风而战1 小时前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
kejijianwen2 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
编程零零七2 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
技术无疆3 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入