如何使用 Python 獲取給定字串中的第 N 個單詞?


我們可以使用字串分割、正則表示式、split() 方法等在 Python 中獲取給定字串中的第 N 個單詞。操作字串是程式設計中的一項常見任務,從字串中提取特定單詞在各種場景中可能特別有用。在本文中,我們將探討使用 Python 從給定字串中提取第 N 個單詞的不同方法。

方法 1:分割字串

此方法涉及將字串分割成一個單詞列表,並根據其索引訪問所需的單詞。

語法

words = string.split()

在這裡,split() 方法預設情況下根據空格分割字串。生成的單詞儲存在 words 列表中。

演算法

  • 接受輸入字串和 N 的值。

  • 使用 split() 方法將字串分割成一個單詞列表。

  • 使用索引從列表中訪問第 N 個單詞。

  • 使用索引從列表中訪問第 N 個單詞。

示例

讓我們考慮以下字串:“The quick brown fox jumps over the lazy dog.” 在下面的示例中,輸入字串使用 split() 方法分割成一個單詞列表。由於 N 的值為 3,因此函式返回第三個單詞“brown”。

def get_nth_word_split(string, n):
    words = string.split()
    if 1 <= n <= len(words):
        return words[n-1]
    else:
        return "Invalid value of N."

# Test the function
input_string = "The quick brown fox jumps over the lazy dog."
n = 3
print(get_nth_word_split(input_string, n))

輸出

brown

方法 2:使用正則表示式

提取第 N 個單詞的另一種方法涉及使用正則表示式。這種方法在處理不同的單詞模式和分隔符方面提供了靈活性。

語法

import re
words = re.findall(pattern, string)

在這裡,re 模組中的re.findall() 函式用於根據指定的模式從輸入字串中提取所有單詞。模式使用正則表示式定義。生成的單詞儲存在 words 列表中。

演算法

  • 匯入 re 模組。

  • 接受輸入字串和 N 的值。

  • 定義一個正則表示式模式來匹配單詞。

  • 使用 re 模組中的 findall() 函式從字串中提取所有單詞。

  • 使用索引從步驟 4 中獲得的列表中訪問第 N 個單詞。

  • 返回第 N 個單詞。

示例

在下面的示例中,正則表示式模式 '\w+' 用於匹配輸入字串中的所有單詞。findall() 函式提取所有單詞並將它們儲存在一個列表中。由於 N 的值為 4,因此函式返回第四個單詞“jumps”。

import re

def get_nth_word_regex(string, n):
    pattern = r'\w+'
    words = re.findall(pattern, string)
    if 1 <= n <= len(words):
        return words[n-1]
    else:
        return "Invalid value of N."

# Test the function
input_string = "The quick brown fox jumps over the lazy dog."
n = 4
print(get_nth_word_regex(input_string, n))

輸出

fox

方法 3:使用帶自定義分隔符的 split() 方法

在某些情況下,字串可能具有除空格之外的特定分隔符。在這種情況下,我們可以透過為分割字串指定自定義分隔符來修改第一種方法。

語法

words = string.split(delimiter)

在這裡,split() 方法用於根據自定義分隔符將輸入字串分割成一個單詞列表。分隔符作為引數指定給 split() 方法。生成的單詞儲存在 words 列表中。

演算法

  • 接受輸入字串、分隔符和 N 的值。

  • 使用帶自定義分隔符的 split() 方法將字串分割成一個單詞列表。

  • 使用索引從列表中訪問第 N 個單詞

  • 返回第 N 個單詞。

示例

在下面的示例中,字串使用自定義分隔符(逗號 (","))分割成單詞。第二個單詞“banana”被提取並返回,因為它對應於 N 的值為 2。

def get_nth_word_custom_delimiter(string, delimiter, n):
    words = string.split(delimiter)
    if 1 <= n <= len(words):
        return words[n-1]
    else:
        return "Invalid value of N."

# Test the function
input_string = "apple,banana,orange,mango"
delimiter = ","
n = 2
print(get_nth_word_custom_delimiter(input_string, delimiter, n))

輸出

banana

結論

在本文中,我們討論瞭如何藉助分割字串、使用正則表示式以及使用帶自定義分隔符的 split 方法等方法來獲取給定字串中的第 n 個單詞。每種方法根據手頭任務的要求提供靈活性。透過理解和實現這些技術,您可以有效地從 Python 程式中的字串中提取特定單詞。

更新於: 2023-07-18

937 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告