502 Stimmen

Splitting beim ersten Auftreten

Wie lässt sich eine Zeichenkette am besten beim ersten Auftreten eines Begrenzungszeichens aufteilen?

Zum Beispiel:

"123mango abcd mango kiwi peach"

Spaltung auf der ersten mango zu bekommen:

"abcd mango kiwi peach"

853voto

Ignacio Vazquez-Abrams Punkte 735200

En les docs :

str.split([_sep_[, _maxsplit_]])

Gibt eine Liste der Wörter in der Zeichenkette zurück, wobei sep als Begrenzungszeichenfolge. Wenn maxsplit gegeben ist, höchstens maxsplit gesplittet werden (die Liste hat also höchstens maxsplit+1 Elemente).

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

99voto

utdemir Punkte 25584
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'

38voto

Alex Punkte 2971

Für mich ist das der bessere Ansatz:

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

...denn wenn dieses Vorkommen nicht in der Zeichenkette vorkommt, erhalten Sie " IndexError: list index out of range" .

Deshalb -1 wird keinen Schaden nehmen, da die Anzahl der Vorkommnisse bereits auf eins gesetzt ist.

24voto

heemayl Punkte 36763

Sie können auch Folgendes 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 von str.partition ist, dass es immer ein Tupel in der Form zurückgibt:

(<pre>, <separator>, <post>)

Dies macht das Entpacken der Ausgabe wirklich flexibel, da es immer 3 Elemente in dem resultierenden Tupel sein werden.

-9voto

himanshu arora Punkte 1
df.columnname[1].split('.', 1)

Dadurch werden Daten mit dem ersten Vorkommen von '.' im Spaltenwert der Zeichenkette oder des Datenrahmens aufgeteilt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X