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