Python中如何打印列表中最高模糊比率的行
我有一个列表,里面包含一些行。我想打印出与单词'good'匹配的、模糊匹配度最高的那一行。
问题:它只打印出单词,而不是列表中的整行。
代码:
from fuzzywuzzy import fuzz
c = ['I am python', 'python is good', 'Everyone are humans']
print(max(c, key=lambda a: fuzz.ratio(a, 'good')))
期望的输出:
python is good
我得到的是一个单词,而不是列表中模糊匹配值最高的那一行。请帮我修复我的代码!非常感谢!
2 个回答
0
这段代码是用来处理某些数据的。它可能涉及到一些循环和条件判断,目的是为了让程序能够根据不同的情况做出不同的反应。
在编程中,我们常常需要对数据进行操作,比如从一个地方获取数据,然后根据这些数据来决定接下来要做什么。这个过程就像是在做选择题,程序会根据你给它的信息来选择答案。
如果你看到代码中有一些重复的部分,那是因为程序需要多次执行相同的操作。就像你每天都要刷牙一样,虽然是同样的动作,但每天都要做。
总之,这段代码的核心就是通过一些简单的逻辑来处理数据,让程序能够智能地做出决策。
from fuzzywuzzy import fuzz
c = ['I am python', 'python is good', 'Everyone are humans']
l = [(i,fuzz.ratio(i,'good')) for i in c]
l.sort(key=lambda a: a[1], reverse=True)
1
你的代码看起来没问题,最有可能的原因是你的 c
数组初始化得不对,里面可能装的是单词而不是句子。
你的代码应该像这样:
from fuzzywuzzy import fuzz
c = ['I am python', 'python is good', 'Everyone are humans']
print(max(c, key=lambda a: fuzz.ratio(a, 'good')))