1
我試圖找到一種方法來計算/確定字符串列表中最接近的字符串匹配。從字符串列表計算最接近的字符串匹配
這裏是我想找到最接近的匹配字符串: CTGGAG
從字符串列表:
:matchlist = ['ACTGGA', 'CTGGAG', 'CTGGAA', 'CTGGTG', 'ACCGGT']
我使用SequenceMatcher從difflib嘗試
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)因爲CTGGAG
,CTGGAA
和CTGGTG
之間只有一個字母的差異,所以列表中的第四個值和第四個值應該具有最高的比率。我基本上只想計算兩個字符串之間有多少字母變化。這可能嗎?
你可以使用Levenshtein距離(即編輯距離,有多少編輯你需要讓你兩個字符串匹配)。有幾個python包已經實現了這個。而且實現起來相當簡單。它可以讓你比較兩個不等長的字符串。 –