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

用户名

我想比较两个不同列表中的单词,例如,我有:
['freeze','dog','difficult','answer']和另一个列表['freaze','dot',' dificult','anser']。我想比较此列表中的单词并给不正确的字母打上标记。因此,+ 1表示正确,-1表示错误。为了提供一些背景信息,在拼写测试中,第一个列表是答案,第二个列表是学生的答案。我将如何去做?

马特·布莱恩特

假设两个列表的长度相同,并且grade(a,b)a,b字符串中有一些函数

key = ['freeze','dog','difficult','answer']
ans = ['freaze','dot','dificult','anser']

pairs = zip(key, ans)
score = sum(grade(k,v) for (k,v) in pairs)

可能的评分功能为:

def grade(a,b):
    return 1 if a == b else -1

惩罚每个错误字符并给出1pt正确拼写(听起来很刺耳...)的评分功能可能是:

def grade(a,b):
    score = sum(a == b for (a,b) in zip(a,b)) - max(len(a), len(b))
    return score if score else 1

如果您需要Levenshtein距离,则可能希望您的grade函数成为以下内容的包装,该内容在Wikibooks上发现并且似乎相当有效:

def levenshtein(seq1, seq2):
    oneago = None
    thisrow = range(1, len(seq2) + 1) + [0]
    for x in xrange(len(seq1)):
        twoago, oneago, thisrow = oneago, thisrow, [0] * len(seq2) + [x + 1]
        for y in xrange(len(seq2)):
            delcost = oneago[y] + 1
            addcost = thisrow[y - 1] + 1
            subcost = oneago[y - 1] + (seq1[x] != seq2[y])
            thisrow[y] = min(delcost, addcost, subcost)
    return thisrow[len(seq2) - 1]

您也可以看一下difflib做更复杂的事情。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中的两个列表比较

来自分类Dev

合并两个列表中的单词

来自分类Dev

比较Mathematica中的两个列表

来自分类Dev

比较Scala中的两个列表

来自分类Dev

比较Scala中的两个列表

来自分类Dev

比较python中的两个大列表

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

比较Python中的两个未知列表

来自分类Dev

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

来自分类Dev

比较python中的两个大列表

来自分类Dev

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

来自分类Dev

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

来自分类Dev

比较python中的两个变量列表

来自分类Dev

比较python 2中的两个dicts列表

来自分类Dev

比较python中的两个路径

来自分类Dev

比较两个richtextbox中的单词以找到区别?

来自分类Dev

迭代python中的两个列表

来自分类Dev

python中的两个相邻列表

来自分类Dev

Python中两个列表的求和

来自分类Dev

Python中两个列表的并集

来自分类Dev

python中两个列表的组合

来自分类Dev

比较两个列表以获取同时出现在两个列表中的对象

来自分类Dev

比较两个列表以获取同时出现在两个列表中的对象

来自分类Dev

根据python中两个单词的最后两个单词

来自分类Dev

两个列表的Python比较

来自分类Dev

Python:如何比较两个列表

来自分类Dev

Python:比较两个CSV列表