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)]