【问题标题】:python highest fuzzy ratio to print line from listpython最高模糊率从列表中打印行
【发布时间】:2014-08-16 17:59:26
【问题描述】:

我有一个由一些行组成的列表。我想打印与单词“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

我从列表中得到一个单词而不是最高模糊值的行。请帮助修复我的代码!答案将不胜感激!

【问题讨论】:

  • 您能否也展示一下您是如何填充c的?

标签: python fuzzywuzzy


【解决方案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')))

【讨论】:

  • 当然可以,可能是我写的c的定义错误。
  • “可能错误在c的定义中”在cmets中应该更好。
  • 很可能OP不精通python,这就是为什么我认为发布代码比用一长串问答污染cmets更好的原因
【解决方案2】:
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)

【讨论】:

  • 这个答案可能会解决问题,但请考虑扩展它,以便对未来的访问者也有用。您可以解释 OP 的代码出了什么问题以及您做了什么来修复它。
猜你喜欢
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多