2015-11-24 53 views
-4
"I am a human" 

刪除精確匹配詞從上面的字符串,我想刪除的字母「a」,這樣的字符串就變成了:我用下面的代碼從列表

"I am human" 

和它完美的罰款。

plural = input("Enter a string: ") 
processed = plural.split() 

processed.remove("a") 

但是,如果句子中沒有「a」,它將以錯誤結束。

"I am not an elephant" 

在這種情況下,我希望程序忽略它。我該怎麼做?

+0

什麼是錯誤?使用Python 2? –

+0

'processed.remove(「a」)如果處理中出現「a」 –

+0

您可以在處理:processed.remove(「a」)中使用'if「a」。檢查此答案更多的解決方案:http://stackoverflow.com/questions/4915920/how-to-delete-an-item-in-a-list-if-it-exists-python –

回答

2

它只是模式匹配文本的分割。正則表達式要好得多。

" ".join("I am a human".split(" a ")) 

OR

"I am a human".replace(" a "," ") 
+1

答案只有代碼和沒有解釋沒有用,請說明你的代碼做了什麼以及它以什麼方式幫助OP –

+0

@TimCastelijns現在編輯 –

1

根據the doc當出現在列表中沒有這樣的價值remove()方法引發錯誤。

如你所知,這可能happend,你可以只捕捉到了異常:

try: 
    processed.remove("a")  
except ValueError: 
    pass # happens. 

但是它會更好地使用正則表達式,例如re.sub()

這不會打破的時候意想不到的東西將在plural輸入:

plural = "I am a human" 
value = re.sub(' a ', ' ', plural) # Replace "space + 'a' letter + space" with one space