我写了以下代码:
def all_di(fl):
dmm = {}
for k in range(2):
for i in fl:
for m in range (len(i)-1):
temp = i[m:m+k+1]
if temp in dmm:
dmm[temp] += 1.0
else:
dmm[temp] = 1.0
## return dmm
p = raw_input("Enter a 2 AA long seq:")
sum = 0
for x,y in dmm.iteritems():
if x == p:
n1 = y
for l,m in dmm.iteritems():
if l[0] == p[0]:
sum = sum + m
print float(n1)/float(sum)
all_di(inh)
如果inh={'VE':16,'GF':19,'VF':23,'GG' :2}
代码的工作原理如下:
Enter a 2 AA long seq: VE
结果将是=16/(16+23)
=0.41
工作原理:该函数在字典dmm
中搜索与在input
中输入的键类似的键(这里的示例是“VE”)。它存储其值,然后搜索所有具有共同的第一个字母的键值对,将其所有值相加并返回一个分数。你知道吗
VE = 16
**V**E + **V**F = 39
= 16/39 = 0.41
我想要的:保持函数完好无损,我想要有一个二级字典,它对字典中的每个键值对进行迭代,并将它的分数值存储在不同的字典中,这样:
new_dict = {'VE' : 0.41, 'GF':0.90,'VF':0.51, 'GG': 0.09}
我不想删除print
语句,因为它是我的程序的输出。不过,我需要new_dict
来做进一步的工作。你知道吗
相关问题 更多 >
编程相关推荐