使用Python中的split()函数将字符串拆分为列表
Python中的split()函数是一种很常见的字符串函数,它能够将一个字符串按照指定的分隔符进行切割,并将切割后的结果返回一个列表。这个函数非常实用,可以用来处理多种不同场景下的字符串操作。
split() 函数的语法格式如下:
str.split([sep[, maxsplit]])
其中,str是要进行切割的原始字符串,sep是用来分隔原始字符串的分隔符,maxsplit参数用于指定切割的最大次数。如果不指定sep参数,则默认使用空格作为分隔符。
下面是split()函数的一些基本用法示例:
# 按空格分隔字符串
str1 = "hello world python"
list1 = str1.split()
print(list1) # ['hello', 'world', 'python']
# 按指定分隔符分隔字符串
str2 = "a,b,c,d"
list2 = str2.split(",")
print(list2) # ['a', 'b', 'c', 'd']
# 指定切割次数
str3 = "a_b_c_d_e"
list3 = str3.split("_",2)
print(list3) # ['a', 'b', 'c_d_e']
上述代码中,我们使用split()函数来进行字符串的切割操作。在 个示例中,我们没有指定分隔符,所以默认使用空格进行了切割操作。在第二个示例中,我们手动指定了逗号作为分隔符。在第三个示例中,我们还使用了maxsplit参数,来指定切割的最大次数,这里我们指定为2,所以只切割了2次。
除了以上的基本用法外,split()函数还有一些比较实用的用法,下面我们来逐一进行讲解。
1. 按多个分隔符进行切割
在实际应用中,我们有时需要根据不同的分隔符对同一个字符串进行切割操作。针对这种情况,我们可以使用split()函数中的正则表达式,并使用“|”来表示多个分隔符。
下面是示例代码:
import re
str1 = "a_b|c,d-e"
list1 = re.split("_|\||,|-",str1)
print(list1) # ['a', 'b', 'c', 'd', 'e']
在上面的代码中,我们首先导入了Python中的re模块,并使用了re.split()函数。在这个函数中,我们使用了正则表达式来定义多个分隔符,其中“|”表示或的意思。这样,我们就可以针对多个分隔符进行了切割操作,并将结果保存在了一个列表中。
2. 去除字符串的空格
在 Python 中,字符串对象内置有三个常用的去空格方法:
- strip() 删除两端的空格
- lstrip() 删除左侧的空格
- rstrip() 删除右侧的空格
下面是示例代码:
str1 = " hello " list1 = str1.strip() # 'hello' list2 = str1.lstrip() # 'hello ' list3 = str1.rstrip() # ' hello'
在上面的代码中,我们首先定义了一个字符串,然后分别应用了strip()、lstrip() 和 rstrip() 方法。这三个方法都可以去除字符串内部的空格字符,这些字符包括一个空格字形、换行符、制表符等等其他不可见字符。
3. 剥离文本中的HTML代码
在实际应用中,我们有时需要对从 Web 页面上下载的 HTML 文件进行处理。这时候我们需要将 HTML 中的无用代码去掉,只保留纯文本。要实现这个功能,我们可以使用split()函数,并结合列表推导式来过滤掉里面的 HTML 标签。
以下是示例代码:
import re
html = """
<div>
<h1>python news</h1>
<ul>
<li><a href='http://www.a.com'>站点 a</a></li>
<li><a href='http://www.b.com'>站点 b</a></li>
</ul>
</div>
"""
text = " ".join([s.strip() for s in re.split("<.*?>", html)])
print(text) # 'python news 站点 a 站点 b'
在上面的代码中,我们首先定义了一段含有 HTML 标签的文本。然后应用了split()函数 + 列表推导式,来去除文本里面的 HTML 标签,最后使用join()方法进行拼接处理,得到了一个仅含有文本的字符串。
总结:
在Python中, split()函数是非常实用的字符串函数,它能够将一个字符串按照指定分隔符进行切割,并将结果保存在一个列表中。同样,Python中还提供了strip()、lstrip() 和 rstrip() 等函数,用于删除一个字符串中的空格。这两个函数的应用场景都比较广泛,在实际编程中可以灵活运用,提高我们的工作效率。
