将基于分隔符的字符串拆分为字符串列表

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 指定执行的最大拆分数,而大多数其他编程语言指定创建的最大子字符串数。在移植或比较代码时,这可能会造成混淆。