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 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告