gpt4 book ai didi

python - 根据汉明距离从 python 列表中删除字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:05 25 4
gpt4 key购买 nike

我有一个 list

l = ['ATCGGG','CGGGAT,CGGGAA','ATGGCC,CTCCCT,CTCCGT,TTAAGG']

我想计算列表中每个元素中字符串之间的汉明距离,并删除小于或等于另一个汉明距离 1 的字符串。例如预期的输出是

l = ['ATCGGG','CGGGAT','ATGGCC,CTCCCT,TTAAGG']

我知道如何计算两个字符串之间的汉明距离:

def hamming(s1, s2):
if len(s1) != len(s2):
raise ValueError("Undefined for sequences of unequal length")
return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

我无法正确迭代列表的元素。请告诉我一个好方法?

最佳答案

这会准确地产生您所说的想要的输出:

result = []
for group in l:
pieces = group.split(",")
thischunk = []
for piece in pieces:
if all(hamming(piece, base) > 1 for base in thischunk):
thischunk.append(piece)
result.append(",".join(thischunk))
print(result)

输出是:

['ATCGGG', 'CGGGAT', 'ATGGCC,CTCCCT,TTAAGG']

关于python - 根据汉明距离从 python 列表中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37997674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com