將基於分隔符的字串拆分為字串列表

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 指定執行的最大拆分數,而大多數其他程式語言指定建立的最大子字串數。在移植或比較程式碼時,這可能會造成混淆。