web-dev-qa-db-ja.com

最初の発生時に分割

最初の区切り文字で文字列を分割するための最善の方法は何でしょうか。

例えば:

"123mango abcd mango kiwi Peach"

最初のmangoを分割して、

"abcd mango kiwi Peach"
247
Acorn

から ドキュメント

str.split([sep[, maxsplit]])

区切り文字列としてsepを使用して、文字列内の単語のリストを返します。 maxsplitが与えられた場合、最大でmaxsplit分割が行われます(したがって、リストは最大でmaxsplit+1個の要素を持ちます。

s.split('mango', 1)[1]
414
>>> s = "123mango abcd mango kiwi Peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi Peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi Peach'
60
utdemir

私にとってより良いアプローチはそれです:

s.split('mango', 1)[-1]

もし起こった場合、その出現は文字列の中にないので "IndexError: list index out of range""となるでしょう。

そのため-1は害を受けることはありません。発生回数はすでに1に設定されています。

22
Alex