0
我有元组的列表:编辑元素
f_list = [('AGCTCCCCGTTTTC', 34), ('TTCATTCCTCTCTC', 1), ('AGCTCCCCGGTTTC', 1)]
如果任何两个字符串之间的汉明距离小于3,我想加入到合并的元素每个元素的第二个条目。如果上述条件不满足,我想保持原样。我想输出是:
f_list = [('AGCTCCCCGTTTTC', 35),('TTCATTCCTCTCTC', 1)]
我对海明距离的函数:
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))
我用下面的列表以识别相关元素进行迭代,但我不知道如何修改原始列表:
for e in f_list:
[item for item in f_list if hamming(e[0],item[0]) < 3]
Output:
[('AGCTCCCCGTTTTC', 34), ('AGCTCCCCGGTTTC', 1)]
[('TTCATTCCTCTCTC', 1)]
[('AGCTCCCCGTTTTC', 34), ('AGCTCCCCGGTTTC', 1)]