我是python的初学者.在这里,我在比较两个列表时遇到了一个问题.我的第一个问题是,不应该对列表进行精确比较.但它应该与其他列表进行大约70%个匹配的比较,如果存在,则返回true.contains()方法在这种情况下没有帮助.以下是我的列表:

TotalTags = ["citrus", "orange", "vitamin-C", "sweet", "yellow", "vitamin-A"] #etc
LikedTags = ["citrus", "orange", "vitamin-D"]

推荐答案

Sahil Desai的FuzzyFuzzy库的答案看起来非常简单.

这是一个具有基本功能的 idea .

TotalTags = ["citrus", "orange", "vitamin-C", "sweet", "yellow", "vitamin-A"] #etc
LikedTags = ["citrus", "orange", "vitamin-C", "sweet", "yellow"]

print(len(set(TotalTags).intersection(set(LikedTags))) / len(TotalTags))  # 0.8333333
print(sum([True for x in TotalTags if x in LikedTags]) / len(TotalTags))  # 0.8333333

Python相关问答推荐

从groupby执行计算后创建新的子框架

我如何使法国在 map 中完全透明的代码?

OR—Tools CP SAT条件约束

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

Stacked bar chart from billrame

名为__main__. py的Python模块在导入时不运行'

如何使用SentenceTransformers创建矢量嵌入?

在pandas数据框中计算相对体积比指标,并添加指标值作为新列

寻找Regex模式返回与我当前函数类似的结果

剪切间隔以添加特定日期

无法在Spyder上的Pandas中将本地CSV转换为数据帧

有没有办法让Re.Sub报告它所做的每一次替换?

Python日志(log)库如何有效地获取lineno和funcName?

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,

Groupby并在组内比较单独行上的两个时间戳

如何在不遇到IndexError的情况下将基数10的整数转换为基数80?

我的浮点问题--在C++/Python中的试用

将.exe文件从.py转换后出现问题.";ModuleNotFoundError:没有名为';Selify;的模块

提取子数组,然后在Python中将它们连接起来