Python - 比较两个列表时出现循环问题

测试用户

我有一个小问题,我试图将 2 个列表与其中的单词进行比较以建立相似度百分比,但问题是,如果我在每个列表中两次使用相同的单词,我会得到一个错误的百分比。

首先我做了这个小脚本:

data1 = ['test', 'super', 'class', 'test', 'boom']
data2 = ['test', 'super', 'class', 'test', 'boom']
res = 0
nb = (len(data1) + len(data2)) / 2
if data1 and data2 and nb != 0:
    for id1, item1 in enumerate(data1):
        for id2, item2 in enumerate(data2):
            if item1 == item2:
                res += 1 - abs(id1 - id2) / nb
    print(res / nb * 100)

问题是,如果我在列表中有 2 次相同的单词,则百分比将大于 100%。为了解决这个问题,我在 'res += 1 - abs(id1 - id2) / nb' 行之后添加了一个 'break',但百分比仍然是伪造的。

我希望你明白我的问题,谢谢你的帮助!

阿尔基斯塔夫·克尔佐恩斯泰夫

您可以difflib.SequenceMatcher改为使用来比较两个列表的相似性。试试这个 :

from difflib import SequenceMatcher as sm
data1 = ['test', 'super', 'class', 'test', 'boom']
data2 = ['test', 'super', 'class', 'test', 'boom']
matching_percentage = sm(None, data1, data2).ratio() * 100

输出

100.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较python中两个列表中的两个单词

来自分类Dev

Python-使用字典比较两个列表

来自分类Dev

比较python中的两个大列表

来自分类Dev

如何使用两个列表作为循环Python

来自分类Dev

如何在python中比较两个列表

来自分类Dev

如何比较两个列表中的项目Python 3.3

来自分类Dev

比较python中两个列表的最佳算法

来自分类Dev

比较两个自定义列表python

来自分类Dev

比较Python中的两个未知列表

来自分类Dev

两个列表,在python中更快的比较

来自分类Dev

当我们在while循环中给两个比较运算符时,python如何理解?

来自分类Dev

在Python中使用Zip函数比较两个列表

来自分类Dev

如何在python中迭代比较两个列表?

来自分类Dev

两个列表的Python比较

来自分类Dev

Python中的两个列表比较

来自分类Dev

比较python中的两个大列表

来自分类Dev

Python:如何比较两个列表

来自分类Dev

比较Python中两个包含数组的列表

来自分类Dev

使用嵌套的for循环比较Python中的2个Excel工作表时出现问题

来自分类Dev

比较python中的两个列表并打印差异

来自分类Dev

如何在Python中比较两个以上的列表?

来自分类Dev

Python:比较两个CSV列表

来自分类Dev

比较python中的两个变量列表

来自分类Dev

python - 比较两个列表

来自分类Dev

比较基于python的两个元组列表

来自分类Dev

python - 比较两个列表以查看一个列表是否连续出现在另一个列表中

来自分类Dev

Python - 比较两个列表以找到计数

来自分类Dev

比较python 2中的两个dicts列表

来自分类Dev

使用 Python 比较两个布尔列表