次のコードを書きました。
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
ただし、さらに作業を行うにはが必要です。