セパレータの最後の出現に基づいて文字列を2に分割します


100

セパレーターの最後の出現に基づいて、文字列を2つの部分に分割するPythonの組み込み関数があるかどうかを知りたいです。

例:文字列 "abc、d、e、f"を検討し、セパレーター "、"で分割した後、出力を次のようにしたい

「abc、d、e」および「f」。

文字列を操作して目的の出力を取得する方法を知っていますが、Pythonに組み込み関数があるかどうかを知りたいです。

回答:


118

を使用しrpartition(s)ます。それはまさにそれを行います。

も使用できますrsplit(s, 1)


11
正確ではない: "abc、d、e、f" .rpartition( '、')->( 'abc、d、e'、 '、'、 'f')
Vanuan

@Vanuan、それはまさにその通りです。何らかの理由でセパレータも返すだけです:str.rpartition(sep)sepの最後の出現で文字列を分割し、セパレータの前の部分、セパレータ自体、およびセパレータの後の部分を含む3タプルを返します。区切り文字が見つからない場合は、2つの空の文字列とその後に続く文字列自体を含む3タプルを返します。
Petar Ivanov

23
rsplit(s, 1)rpartition(s)出力が異なる場合は、認めなければなりません。
Vanuan


54

文字列は、次のように最後に出現するセパレータで分割できますrsplit

区切り文字列で区切られた(右から)文字列内の単語のリストを返します。

最後のカンマで分割するには:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.