Antworten:
Aus den Dokumenten :
str.split([sep[, maxsplit]])
Gibt eine Liste der Wörter in der Zeichenfolge zurück, wobei sep als Trennzeichenfolge verwendet wird. Wenn maxsplit angegeben ist, werden höchstens maxsplit- Teilungen durchgeführt (daher enthält die Liste höchstens
maxsplit+1
Elemente).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Für mich ist der bessere Ansatz:
s.split('mango', 1)[-1]
... denn wenn das Auftreten geschieht nicht in der Zeichenfolge werden Sie bekommen " IndexError: list index out of range"
.
Daher -1
wird kein Schaden verursacht, da die Anzahl der Vorkommen bereits auf eins gesetzt ist.
Sie können auch verwenden str.partition
:
>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
Der Vorteil der Verwendung str.partition
ist, dass immer ein Tupel in der folgenden Form zurückgegeben wird:
(<pre>, <separator>, <post>)
Dies macht das Auspacken der Ausgabe sehr flexibel, da das resultierende Tupel immer 3 Elemente enthält.
df.columnname[1].split('.', 1)
Dadurch werden Daten beim ersten Auftreten von '.' Geteilt. im Zeichenfolgen- oder Datenrahmenspaltenwert.
maxsplit
Anzahl weitere Teilungen durchgeführt werden können , enthält das letzte Element in der Liste den Rest der Zeichenfolge (einschließlich allersep
Zeichen / Zeichenfolgen).