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