我有计算两个字符串之间距离的函数但是我必须编写一个函数来查找两个字符串的距离,这两个字符串是字典中的值。每个值必须找到它自己之间的距离,下一个值和之后的值,依此类推。计算距离的函数是:
def computeDistance(seq1,seq2):
num_difference = 0.0
m=0.0
for i in range(0,10):
if seq1[i] != seq2[i]:
num_difference += 1
m=num_difference/(len(seq1))
return m
输入将类似于
S = {'S01'='agcagagtta','S1111'='ccgccctagt','S001'='cgtgatgcat'}
输出应该是:
S01 - S1111 : 1.0
S01 - S001 : 0.8
S1111 - S001 : 0.8
答案 0 :(得分:0)
S = {'S01':'agcagagtta','S1111':'ccgccctagt','S001':'cgtgatgcat'}
keys = []
for k1, v1 in S.iteritems():
d = 0
lv1 = len(v1)
for k2, v2 in S.iteritems():
if k1 != k2 and k2 not in keys:
#print [v1[e]!=v2[e] for e in range(lv1)],([v1[e]!=v2[e] for e in range(lv1)].count(True)), lv1
d = [v1[e]!=v2[e] for e in range(lv1)].count(True)/float(lv1)
print "%s - %s: %s" % (k1,k2,d)
keys.append(k1)