Python 字符串 split() 方法

Python split() 语法

split() 是 Python 字符串的一个方法,它会根据某个分割符 “从左到右” 来将字符串分割成多个子串,然后返回包含这些子串的列表。

语法:

str.split(separator=None, maxsplit=-1)

说明:

split() 方法接收以下 2 个参数。

  • separator(可选,默认值:None):用于分割的符号。如果 separator 省略,则按任意空白字符(空格、换行、制表符等)分割,其中连续空白符会被视为单个分隔符,并且字符串开头和末尾的空白字符会被忽略
  • maxsplit(可选,默认值:-1):一个非负整数,指定最大分割次数。如果省略 maxsplit 参数或设置为 -1,则表示不限制分割次数。

注意:

  • split() 方法不会修改原字符串,而是返回一个列表,该列表保存的是所有被分割出来子串。
  • 分割符不会作为列表的一部分返回。

Python split() 摘要

使用频率
修改原字符串
官方文档 查看
相关方法 rsplit()splitlines()join()

Python split() 示例

接下来,我们通过几个简单的例子来讲解 Python split() 方法是如何使用的。

示例 1:split() 基本用法

s = 'Python,C++,Java'
result = s.split(',')
print(result)

运行结果如下。

[ 'Python', 'C++', 'Java' ]

分析:

s.split(',') 表示使用 “,”(英文逗号)作为分割符来分隔 str 这个字符串,最后会得到这样一个列表:[ 'Python', 'C++', 'Java' ]。

示例 2:split(' ')(有空格)

s = 'I love Python'
result = s.split(' ')
print(result)

运行结果如下。

['I', 'love', 'Python']

分析:

s.split(' ') 表示使用空格作为分割符,来对 s 进行分割。

示例 3:split(' ')(无空格)

s = 'I love Python'
result = s.split('')
print(result)

运行结果如下。

(报错)ValueError: empty separator

分析:

s.split('') 表示将空字符串作为分割符。在 Python 中,分割符参数不能为空字符串,否则会引发 ValueError 异常。如果想要将字符串拆分为单个字符,我们应该使用 list(s) 方法。

示例 4:split() 不带参数

s1 = 'lvyenet'
s2 = 'lvye net'

print(s1.split())
print(s2.split())

运行结果如下。

['lvyenet']
['lvye', 'net']

分析:

当 split() 方法不带参数(或参数为 None)时,它会将连续的 “空白字符”(包括空格、换行符 \n、制表符 \t 等)作为分割符进行分割。

因此,s1 因为没有空白字符,返回了包含原字符串的单一元素列表;而 s2 包含空格,则被成功分割成了 2 个元素。

示例 5:split() 带 maxsplit 参数

s = 'Python,C++,Java,Go,Rust'
result = s.split(',', 2)
print(result)

运行结果如下。

['Python', 'C++', 'Java,Go,Rust']

分析:

split(',', 2) 表示使用 “,”(英文逗号)作为分割符,然后拆分 2 次。所谓的拆分 2 次,也就是在前 2 个 ',' 处进行拆分,此时会分割成 3 个元素。

示例 6:split() 的 maxsplit 参数为负数

s = 'a,b,c,d'
result = s.split(',', -1)
print(result)

运行结果如下。

['a', 'b', 'c', 'd']

分析:

maxsplit = -1 表示不限制分割次数,与省略参数的行为一致。下面 2 种方式是等价的:

# 方式 1
s.split(',', -1)

# 方式 2
s.split(',')

示例 7:split() 的分割符在开头或结尾

s = ',Python,C++,Java,'
result = s.split(',')
print(result)

运行结果如下。

['', 'Python', 'C++', 'Java', '']

分析:

如果字符串以分隔符开头,那么分割后的第一个元素为空字符串。类似地,如果以分隔符结尾,那么最后一个元素也为空字符串。

示例 8:空字符串使用 split()

s = ''
result = s.split(',')
print(result)

运行结果如下。

['']

分析:

这里小伙伴们要特别注意区分:如果对空字符串指定了分割符(例如 s.split(',')),会返回包含一个空字符串元素的列表 ['']。但如果对空字符串调用不带参数的 split() 方法(即 s.split()),则会返回一个完全为空的列表 []。

上一篇: isprintable()

下一篇: rsplit()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号