Python – 替換字串中的最後一個單詞
在本文中,我們將學習如何用任何其他給定單詞替換字串結尾的單詞(最後一個單詞)。在進行字串操作時,您可能見過這個問題。在這裡,我們將看到用給定單詞替換字串中最後一個單詞的各種方法。
讓我們透過下面的例子來了解這一點:
string_txt = "This cat is running very Fast"
這裡我們有一個包含句子的字串 `string_txt`,我們想將最後一個單詞“Fast”替換為“Slow”,以便生成的字串如下所示。
string_txt = "This cat is running very Slow"
執行此操作的方法。
方法 1. 使用 `split()` 和 `join()` 函式。
示例
def replace_rear(string_txt, new_str): words = string_txt.split() words[-1] = new_str return ' '.join(words) string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用 `split()` 方法將字串分割成單詞列表。我們使用 `words[-1]` 訪問最後一個單詞,並使用 `new_str`(我們想用它替換最後一個單詞的新單詞)替換此單詞。然後,我們使用 `join()` 方法將單詞列表組合回字符串。
方法 2. 使用正則表示式。
示例
import re def replace_rear(string_txt, new_str): return re.sub(r'\b\w+\b$', new_str, string_txt) string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用正則表示式的 `re.sub()` 方法執行正則表示式替換。我們定義了一個模式 `r'\b\w+\b$'`,它匹配字串的最後一個單詞,並將其替換為 `new_str`。
方法 3. 使用 `rsplit()` 函式。
示例
import re def replace_rear(string_txt, new_str): words = string_txt.rsplit(None, 1) return words[0] + ' ' + new_str string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用了 `rsplit()` 方法,它允許我們從最右邊開始分割字串。因此,我們使用此方法從右邊開始將字串分割成單詞。我們將分隔符定義為 `None`,並將分割次數定義為 1,因為我們只想替換最後一個單詞。然後我們將分割後的字串與 `new_str` 組合。因此,它最終會將單詞替換為給定的新單詞。
方法 4. 使用列表推導式。
示例
import re def replace_rear(string_txt, new_str): words = string_txt.split() words = [new_str if i == len(words) - 1 else word for i, word in enumerate(words)] return ' '.join(words) string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用列表推導式遍歷單詞,並在到達最後一個索引 `len(words)-1` 時替換最後一個單詞。然後我們使用 `join()` 函式將分割後的字串組合起來。因此,我們的新字串在結尾處包含替換後的單詞。
方法 5. 使用字串切片技術。
示例
import re def replace_rear(string_txt, new_str): last_space_index = string_txt.rindex(' ') return string_txt[:last_space_index+1] + new_str string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用字串切片技術將字串的最後一個單詞替換為新單詞。我們首先使用 `rindex()` 查詢字串的最後一個空格,然後使用切片將字串分割到最後一個索引,然後我們將其與空格組合並附加我們想要替換的新單詞。
方法 6. 使用 `split()`、`maxsplit` 和 `join()` 方法。
示例
import re def replace_rear(string_txt, new_str): words = string_txt.split(maxsplit=string_txt.count(' ') or None) words[-1] = new_str return ' '.join(words) string_txt = "This cat is running very Fast" print("String before replace: ", string_txt) new_string = replace_rear(string_txt, "Slow") print("String after replacing rear: ", new_string)
輸出
String before replace: This cat is running very Fast String after replacing rear: This cat is running very Slow
解釋
在上面的例子中,我們使用 `maxsplit=string_txt.count('') or None` 指定字串分割將在最後一個空格處發生。然後在分割最後一個單詞後,我們將最後一個單詞替換為 `new_str`,並使用 `join()` 函式將分割後的字串組合起來。
因此,我們瞭解了用新單詞替換字串最後一個單詞的方法。我們看到了解決問題的各種方法,包括正則表示式、列表推導式、`split()` 和 `rsplit()` 函式。每種方法都有其獨特的解決問題的方法,您可以根據自己的需要選擇任何合適且簡單的方法。