将基于分隔符的字符串拆分为字符串列表
str.split(sep=None, maxsplit=-1)
str.split
接受一个字符串并返回原始字符串的子字符串列表。根据是否提供或省略 sep
参数,行为会有所不同。
如果没有提供 sep
,或者是 None
,则分裂发生在有空格的地方。但是,前导和尾随空格被忽略,并且多个连续的空白字符被视为与单个空白字符相同:
>>> "This is a sentence.".split()
['This', 'is', 'a', 'sentence.']
>>> " This is a sentence. ".split()
['This', 'is', 'a', 'sentence.']
>>> " ".split()
[]
sep
参数可用于定义分隔符字符串。在分隔符字符串出现的地方拆分原始字符串,并丢弃分隔符本身。多个连续分隔符不会被视为单个匹配项,而是会导致创建空字符串。
>>> "This is a sentence.".split(' ')
['This', 'is', 'a', 'sentence.']
>>> "Earth,Stars,Sun,Moon".split(',')
['Earth', 'Stars', 'Sun', 'Moon']
>>> " This is a sentence. ".split(' ')
['', 'This', 'is', '', '', '', 'a', 'sentence.', '', '']
>>> "This is a sentence.".split('e')
['This is a s', 'nt', 'nc', '.']
>>> "This is a sentence.".split('en')
['This is a s', 't', 'ce.']
默认设置是在每次出现分隔符时拆分,但 maxsplit
参数限制发生的拆分数。-1
的默认值表示无限制:
>>> "This is a sentence.".split('e', maxsplit=0)
['This is a sentence.']
>>> "This is a sentence.".split('e', maxsplit=1)
['This is a s', 'ntence.']
>>> "This is a sentence.".split('e', maxsplit=2)
['This is a s', 'nt', 'nce.']
>>> "This is a sentence.".split('e', maxsplit=-1)
['This is a s', 'nt', 'nc', '.']
str.rsplit(sep=None, maxsplit=-1)
当指定 maxsplit
时,str.rsplit
(右分割)与 str.split
(左分割)不同。拆分从字符串的末尾开始,而不是从开头处开始:
>>> "This is a sentence.".rsplit('e', maxsplit=1)
['This is a sentenc', '.']
>>> "This is a sentence.".rsplit('e', maxsplit=2)
['This is a sent', 'nc', '.']
注意 :Python 指定执行的最大拆分数,而大多数其他编程语言指定创建的最大子字符串数。在移植或比较代码时,这可能会造成混淆。