使用 Python 查詢字串中單詞的長度


問題在於需要使用 Python 在給定的輸入字串中找到各個單詞的長度。我們希望計算文字輸入中每個單詞的字元數,並以結構化的方式(例如列表)顯示結果。此任務包括分解輸入字串並將每個單詞分開。然後根據每個單詞中的字元數計算每個單詞的長度。基本目標是建立一個能夠接收輸入、確定單詞長度並有效地快速輸出結果的函式或過程。在許多應用程式(包括文字處理、自然語言處理和資料分析)中,解決此問題至關重要,因為單詞長度統計資料可以提供有見地的資訊並啟用進一步的分析。

使用的方法

  • 使用迴圈和 split() 函式

  • 使用 map() 函式與 len 和 split()

  • 使用 re 模組中的 re.split() 方法

  • 使用字典儲存單詞長度

使用迴圈和 split() 函式

使用迴圈和 split() 函式獲取單詞長度的方法是 Python 文字處理和分析的基本且簡單的技術。透過使用此方法將輸入字串分解成其組成單詞,我們可以透過重複遍歷單詞列表來確定每個單詞的長度。在此方法中,split() 函式至關重要,因為它基本上根據空格字元對輸入文字進行標記化,將單詞彼此分開。生成的單詞列表成為我們其餘單詞長度計算的基礎。由於其有效性和在理解和提取文字輸入中的重要資訊方面的簡單性,因此此方法是任何文字分析工具集中不可或缺的一部分。

演算法

  • 定義一個名為 findWordLengths 的函式,該函式以輸入字串作為引數。

  • 使用 split() 函式將輸入字串拆分為單個單詞,使用空格作為分隔符,從而將它們分開。將結果儲存在名為 words 的列表中。

  • 初始化一個空列表“wordLengths”以儲存單詞的長度。

  • 對於 words 列表中的每個單詞,執行以下操作

  • a. 使用 len() 函式計算當前單詞的長度。

    b. 將當前單詞的長度附加到“wordLengths”列表。

  • 返回“wordLengths”列表。

示例

def findWordLengths(input_string):
   words = input_string.split()
   wordLengths = []
   for word in words:
      wordLengths.append(len(word))
   return wordLengths


input_string = "Today feels like a productive day"
result = findWordLengths(input_string)
print("The words lengths are as:", result)

輸出

The words lengths are as: [5, 5, 4, 1, 10, 3]

使用 map() 函式與 len 和 split()

將 map() 函式與 len 和 split() 結合使用的方法為解決處理文字資料的問題提供了一種優雅且有效的 Python 解決方案。此方法利用了 Python 中內建函式的強大功能,將它們結合起來以快速確定輸入字串中各個單詞的長度。此策略的基礎是 split() 方法,該方法使用空格作為分隔符將輸入字串有效地拆分為各個單詞。結果建立了一個單詞列表,作為進一步調查的基礎。透過利用 map() 方法,我們透過將 len() 函式應用於每個單詞,將此列表轉換為包含所有單詞長度的可迭代物件。

演算法

  • 定義一個名為 findWordLengths 的函式,該函式以輸入字串作為引數。引數將包含我們的輸入字串。

  • 使用 split() 函式將輸入字串拆分為單個單詞,使用空格作為分隔符。將結果儲存在名為 words 的列表中。

  • 使用 map() 函式將 len() 函式應用於 words 列表中的每個單詞,因為 len() 函式基本上計算長度。這將導致一個包含各個單詞長度的可迭代物件。

  • 將從 map() 獲得的可迭代物件轉換為列表以獲取各個單詞的長度。

  • 返回單詞長度列表。

示例

def findWordLengths(input_string):
   words = input_string.split()
   wordLengths = list(map(len, words))
   return wordLengths


input_string = "Hello my name is Rahul"
result = findWordLengths(input_string)
print("The words lengths are as:", result)

輸出

The words lengths are as: [5, 2, 4, 2, 5]

使用 re 模組中的 re.split() 方法

正則表示式是用於文字修改和模式匹配的有效工具。在這種情況下,re.split() 函式透過智慧地檢測空格字元作為單詞分隔符,作為一種可靠的技術將短語標記化為單詞。為了準確地分割單詞,正則表示式模式 r's+' 匹配一個或多個連續的空格字元。此方法在處理各種輸入文字格式時表現出色,允許使用不同的空格模式,並提供準確的單詞長度計算。它對正則表示式的使用使其即使在處理大量輸入資料時也能保持高效。此外,缺乏其他庫簡化了實現。

演算法

  • 輸入包含單詞的句子。

  • 使用帶有正則表示式 r'\s+' 的 re.split() 方法將句子拆分為單詞。

  • 初始化一個空列表以儲存單詞長度。

  • 遍歷 words 列表中的每個單詞

  • a. 計算當前單詞的長度。

  • b. 將單詞長度附加到單詞長度列表。

  • 輸出單詞長度列表。

示例

import re

def word_lengths(sentence):
   
   words = re.split(r'\s+', sentence)
   
   word_lengths = []
   
   for word in words:
      length = len(word)
      word_lengths.append(length)
   
   return word_lengths

sentence = "This is a sample sentence"
result = word_lengths(sentence)
print(result)

輸出

[4, 2, 1, 6, 8]

使用字典儲存單詞長度

使用字典儲存單詞長度的方法將 Python 內建資料結構的有效性與簡單的演算法相結合,從而提供強大的靈活解決方案。該方法透過迭代地使用 len() 函式計算其長度,為字典中的每個單詞生成鍵值對。單詞被設定為鍵,相應的長度作為值。此清晰簡單的過程確保了單詞長度的收集既準確又高效。

生成的字典提供了對應於每個單詞的單詞長度,捕獲了文字的廣泛檢視。對於進一步的資料處理或分析,此格式使得輕鬆檢索單詞長度變得簡單。

演算法

  • 輸入包含單詞的句子。

  • 使用 split() 方法將句子拆分為單詞,這將為我們的輸入字串建立單詞列表。

  • 初始化一個空字典以儲存單詞長度。

  • 遍歷 words 列表中的每個單詞,如下所示

  • a. 計算當前單詞的長度。

  • b. 向字典中新增一個條目,其中單詞作為鍵,其長度作為值。

  • 輸出包含單詞長度的字典。

示例

def word_lengths(sentence):

   words = sentence.split()
   word_lengths_dict = {}
   
   for word in words:
      length = len(word)
      word_lengths_dict[word] = length
   
   return word_lengths_dict

sentence = "This is how the length of words is calculated"
result = word_lengths(sentence)
print(result)

輸出

{'This': 4, 'is': 2, 'how': 3, 'the': 3, 'length': 6, 'of': 2, 'words': 5, 'is': 2, 'calculated': 10}

結論

因此,總而言之,我們研究了四種不同的 Python 方法來計算字串中的單詞長度。對於簡單的任務,前兩種方法——使用迴圈和 split() 函式或 map() 函式與 len 和 split()——提供了簡單性和有效性。第三種選擇,即使用 re 模組中的 re.split() 方法,展示了正則表示式的強大功能,並且適用於複雜的文字處理應用程式。最後但並非最不重要的是,使用字典跟蹤單詞長度提供了一種系統且實用的方法來檢索和處理單詞資料。每種方法都提供了特定的優勢,使程式設計師能夠根據特定的需求和編碼偏好選擇最佳選擇。

更新於: 2023-08-03

3K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.