分割、合并字符串

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

相关推荐
腾讯TNTWeb前端团队5 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
mghio7 小时前
Dubbo 中的集群容错
java·微服务·dubbo
范文杰8 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪9 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪9 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy9 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom10 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom10 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom10 小时前
React与Next.js:基础知识及应用场景
前端·面试·github