2012-10-14 82 views
20

刪除字符串的第一個單詞的最快/最乾淨的方法是什麼?我知道我可以使用split,然後迭代數組來獲取我的字符串。但我很確定這不是最好的方法。刪除Python字符串中的第一個單詞?

ps:我對Python很新,我不知道每一個竅門。

在此先感謝您的幫助。

+0

split,pop,join? – Prasanth

回答

48

我認爲最好的方法是通過提供maxsplit參數分裂,但僅限制於一個分裂:

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

他想從字符串中刪除第一個單詞,所以命令應該是'a = a.split('',1)[1]' –

+0

@IonutHulub哦,你是對的。我會編輯答案。 – ovgolovin

+0

如何修改爲安全界限? – gandolf

0

假設你能保證用一個空格隔開的話,str.partition()是你是什麼尋找。

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

元組中的第三項是你想要的部分。

3

如果你的字符串只有一個單詞,我認爲不是你想要的,另一個答案會引發異常。

改爲此的一種方法是使用str.partition函數。

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

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

一個天真的解決辦法是:

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

然而,這不會在以下(無可否認人爲的)例子的工作:

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

爲了解決這個問題,你需要正則表達式:

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

更一般地說,如果不知道我們正在談論的是哪種自然語言,就不可能回答涉及「單詞」的問題。 「J'ai」有多少個單詞? 「中華人民共和國」怎麼樣?

相關問題