从字符串列表

时间:2016-03-01 02:15:00

标签: python regex string fuzzy-search

我试图找到一种方法来计算/确定字符串列表中最接近的字符串匹配。

这是我想要找到最接近的匹配项的字符串: CTGGAG

从字符串列表中:

matchlist = ['ACTGGA', 'CTGGAG', 'CTGGAA', 'CTGGTG', 'ACCGGT']

我尝试过使用difflib中的SequenceMatcher:

for t in match:
    assignseqmatch = SequenceMatcher(None, CTGGAG, t)
    ratio = assignseqmatch.ratio()
    seqratiomatchlist.append(ratio)
    for r, s in zip(seqratiomatchlist, neutralhex):
        neutralmatchscores[r].append(s)

然而,当我使用这种方法时,当列表中的第三个和第四个值应该具有最高比率时,列表中的前四个值都报告具有相同的比率(0.833333),因为只有一个字母CTGGAGCTGGAACTGGTG之间的差异。我基本上只想计算两个字符串之间有多少字母变化。这可能吗?

1 个答案:

答案 0 :(得分:1)

要查找两个等长字符串xy之间的字母更改次数,请执行以下操作:

numChanges = sum(i != j for i, j in zip(x, y))