Python 列表相似度百分比


在各種應用中,測量 Python 中兩個列表的相似度百分比是一種常見的操作。無論您是在進行資料分析、文字處理、推薦系統,甚至是社交網路分析,確定列表間的相似程度對於做出明智的決策和獲得有見地的知識至關重要。在本文中,我們將深入探討列表相似度主題,研究兩種不同的方法來估計相似度百分比。

確定兩個列表的相似程度需要分析列表之間重疊或共享的元素。此指標提供了對兩個列表相似程度的數值評估。它使我們能夠有意義地衡量相似程度並量化重疊程度。第一種方法使用集合資料結構,特別是在不需要重複項時,來獲取兩個列表的交集。第二種方法逐個比較列表項,在計算共享元素的數量比去除重複項更重要時適用。

方法

為了使用 Python 查詢列表的相似度百分比,我們可以遵循以下兩種方法:

  • 基於交集的相似度計算。

  • 基於元素的相似度計算。

讓我們研究這兩種方法:

基於交集的相似度計算

在評估兩個列表彼此的相似程度時,基於交集的方法側重於識別列表之間共享的元素。它利用 Python 預設包含的集合資料結構,這提供了一種快速去除重複項並執行集合運算(如查詢交集)的方法。我們可以透過計算交集的大小並考慮列表的平均長度來計算相似度百分比。當不需要重複項並且我們希望關注列表之間共享的不同元素時,此方法非常有用。

演算法

使用 Python 查詢列表相似度百分比的演算法如下:

  • 步驟 1 - 建立一個以兩個列表作為引數的函式。

  • 步驟 2 - 計算兩個列表之間的交集。

  • 步驟 3 - 計算兩個列表之間的相似度百分比。

  • 步驟 4 - 返回結果。

  • 步驟 5 - 建立第一個和第二個列表。

  • 步驟 6 - 呼叫上述函式並將上述列表作為引數傳遞。

  • 步驟 7 - 顯示結果。

示例

# Create a function that takes two lists as a parameter
def similarity_compute(list_first, list_second):
   # Compute the intersection from the first and second list
   intersected_items = set(list_first).intersection(list_second)
   # Compute the similarity percentage among the two list 
   lengthOfItersectedItems = len(intersected_items)
   similarity_percentage = (lengthOfItersectedItems / ((len(list_first) + len(list_second)) / 2)) * 100
   # Return the result
   return similarity_percentage

# Create the first list as an example
firstList = [11, 22, 33, 44, 55]
# Create the second list as an example
secondList = [44, 55, 66, 77, 88]
# Call the above function
similarity_percentage = similarity_compute(firstList, secondList)
# Display the result
print("Similarity Percentage: {:.2f}%".format(similarity_percentage))

輸出

Similarity Percentage: 40.00%

基於元素的相似度計算

與基於交集的方法相反,基於元素的方法透過比較每個位置的元素來確定兩個列表之間的相似度。這包括迭代一個列表並確定每個元素是否出現在另一個列表中。我們可以透過收集共享的條目並將該總數除以其中一個列表的長度來計算相似度百分比。當計算常見元素的出現次數比去除重複項更重要時,此方法適用。儘管它們具有個性,但它使我們能夠根據共享專案的 presence 來判斷列表之間的相似性。

演算法

使用 Python 查詢列表相似度百分比的演算法如下:

  • 步驟 1 - 建立一個以兩個列表作為引數的函式。

  • 步驟 2 - 獲取一個變數 count,它儲存列表中公共值的計數。

  • 步驟 3 - 遍歷 for 迴圈,併為每個列表計算公共元素。

  • 步驟 4 - 為列表中的每個公共元素增加 count 值。

  • 步驟 5 - 透過將公共值除以所有列表元素的長度來計算相似度百分比。

  • 步驟 6 - 呼叫上述函式並將兩個列表作為引數傳遞。

  • 步驟 7 - 顯示結果。

示例

#Create a function that takes two lists as a parameter
def similarity_compute(first_list, second_list):
   # take count variable two count intersection numbers among the list
   count = 0
   # Traverse the first list
   for element in first_list:
      # for if the second list has the element in the first list 
      if element in second_list:
         # increment the value
         count += 1
   #Compute the similarity percentage  
   similarity_percentage = (count / len(first_list)) * 100
   return similarity_percentage

# Take an example of two lists
first_list = [11, 22, 33, 44, 55]
# The second list
second_list = [44, 55, 66, 77, 88]
# Call the above function
similarity_percentage = similarity_compute(first_list, second_list)
# Display the result
print("Similarity Percentage: {:.2f}%".format(similarity_percentage))

輸出

Similarity Percentage: 40.00%

結論

在本文中,我們研究了兩種在 Python 中計算列表相似度百分比的方法。第一種方法使用了集合交集運算,而第二種方法則進行了逐元素比較。對於給定的示例列表,兩種方法都產生了相同的相似度百分比。在選擇方法時,務必考慮輸入列表的特性以及應用程式的需求。

更新於:2023年10月18日

717 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告