我想從字符串中移除單詞列表。python:如何從字符串中移除單詞
例如: 名單是:
["it's","didn't",isn't,"don't"]
字符串爲:
'it's a toy,isn't a tool.i don't know anything.'
我應該怎麼做刪除it's
,didn't
,isn't
和don't
從字符串?
我想從字符串中移除單詞列表。python:如何從字符串中移除單詞
例如: 名單是:
["it's","didn't",isn't,"don't"]
字符串爲:
'it's a toy,isn't a tool.i don't know anything.'
我應該怎麼做刪除it's
,didn't
,isn't
和don't
從字符串?
有幾種方法可以做到這一點,我會解決2.一個是按字分割字符串,逐字比較要刪除單詞的字符串。另一種是掃描每個字符串的字符串。我將舉例說明每種方法的優缺點。
第一種方法是按字分割列表。這很好,因爲它可以覆蓋整個列表,並且可以使用列表理解來提取所需的值,但是,由於它只寫入空格,所以它會錯過任何觸及標點符號的內容。 This question解決了如何避免這個問題,以便這個答案可以工作。
your_string = "it's a toy,isn't a tool.i don't know anything."
removal_list = ["it's","didn't","isn't","don't"]
edit_string_as_list = your_string.split()
final_list = [word for word in edit_string_as_list if word not in removal_list]
final_string = ' '.join(final_list)
第二個選項是按原樣刪除字符串中所有這些術語的所有實例。這很好,因爲它可以避免標點問題,但它有一個缺點;如果你刪除了某個東西而且它是另一個詞的一部分,那麼該部分將被刪除(例如,如果你有一個帶有「sand」字樣的字符串並嘗試刪除「and」,它將刪除「and」from「沙」,並留下‘S’字符串中。)
your_string = "it's a toy,isn't a tool.i don't know anything."
removal_list = ["it's","didn't","isn't","don't"]
for word in removal_list:
your_string = your_string.replace(word, "")
我希望這些解決方案之一滿足您的需求。
試試這個:
s = "it's a toy,isn't a tool.i don't know anything."
list = ["it's","didn't","isn't","don't"]
split_line = s.split()
for word in split_line:
if word in list:
list.remove(word)
output = ' '.join(list)
注意:這不佔地方的話是,如果他們要對抗的標點符號,像你這樣在這裏的不同情況實例:toy,isn't
。
爲了說明那些標點符號的區別,[這個問題](https://stackoverflow.com/questions/1059559/split-strings-with-multiple-delimiters)解決了如何分割不僅僅是空白。 –
你能更具體一點嗎?字符串和列表如何相關? –
你是說你想刪除列表中出現在字符串中的每一個單詞?你的措辭有點不清楚。 –
@DavyM是的,英文是有點bad.sorry.any提示? – flystar