2012-10-14 13 views
20

Was ist der schnellste/sauberste Weg, das erste Wort einer Zeichenkette zu entfernen? Ich weiß, ich kann split verwenden und dann auf das Array iterieren, um meine Zeichenfolge zu erhalten. Aber ich bin mir ziemlich sicher, dass das nicht der schönste Weg ist.Entfernen Sie das erste Wort in einer Python-Zeichenfolge?

Ps: Ich bin ziemlich neu bei Python und ich kenne nicht jeden Trick.

Vielen Dank im Voraus für Ihre Hilfe.

+0

split, pop, beitreten? – Prasanth

Antwort

48

Ich denke, der beste Weg, zu spalten, aber es nur auf eine Spaltung zu begrenzen, indem sie maxsplit Parameter:

>>> s = 'word1 word2 word3' 
>>> s.split(' ', 1) 
['word1', 'word2 word3'] 
>>> s.split(' ', 1)[1] 
'word2 word3' 
+1

er möchte das erste Wort aus der Zeichenfolge entfernen, so dass der Befehl sein sollte: a = a.split ('', 1) [1] ' –

+0

@IonutHulub Oh, Sie haben Recht. Ich werde die Antwort bearbeiten. – ovgolovin

+0

Wie kann dies geändert werden, um sicher zu sein? – gandolf

0

Vorausgesetzt, Sie die Wörter durch ein Leerzeichen getrennt sind, garantieren kann, str.partition() ist, was du bist Auf der Suche nach.

>>> test = "word1 word2 word3" 
>>> test.partition(" ") 
('word1', ' ', 'word2 word3') 

Der dritte Punkt im Tupel ist der gewünschte Teil.

3

Die andere Antwort wird eine Ausnahme auslösen, wenn Ihre Zeichenfolge nur ein Wort hat, was ich vermute, ist nicht das, was Sie wollen.

Eine Möglichkeit, dies stattdessen zu tun, ist die Verwendung der str.partition-Funktion.

>>> s = "foo bar baz" 
>>> first, _, rest = s.partition(" ") 
>>> rest or first 
'bar baz' 

>>> s = "foo" 
>>> first, _, rest = s.partition(" ") 
>>> rest or first 
'foo' 
11

Eine naive Lösung wäre:

text = "funny cheese shop" 
print text.partition(' ')[2] # cheese shop 

jedoch, dass nicht in den folgenden (zugegebenermaßen erfundene) Beispiel funktioniert:

text = "Hi,nice people" 
print text.partition(' ')[2] # people 

Um dies zu umgehen, du bist Regelmäßige Ausdrücke benötigen:

import re 
print re.sub(r'^\W*\w+\W*', '', text) 

Im Allgemeinen ist es unmöglich, eine Frage mit "Wort" zu beantworten, ohne zu wissen, von welcher natürlichen Sprache wir sprechen. Wie viele Wörter ist "J'ai"? Wie wäre es mit "中华人民共和国"?

Verwandte Themen