在下面的代碼中,我試圖循環變量「Genome」,其中包含一段遺傳密碼。我正在初始化一個存儲在變量「skew」中的數組,這個變量保持了遺傳字母的運行得分。例如,每次遇到「C」時,我想讓skew [i]等於skew [i-1] -1,並且每次遇到「G」時,我希望skew [i]等於skew [i-1] +1。所以我基本上保留了一段遺傳密碼中G與C比值的分數。當我運行下面的代碼時,我得到「Keyerror:23」。我知道當Python無法訪問一個字典項時Python會拋出一個keyerror,但我不知道如何修復我的代碼。請幫忙!!迭代字典
def skew(Genome):
skew = {}
n = len(Genome)
skew[0] = 0
for i in range(0,n):
#skew[i] = skew[i-1]
if Genome[i] == "G":
for j in (1,n):
skew[j] = skew[j-1]+1
elif Genome[i] == "C":
for j in (1,n):
skew[j] = skew[j-1]-1
else:
for j in (1,n):
skew[j]=skew[j-1]
return skew
Genome="CCGTTCTTCGCTCTAGTTACAGCG"
print skew(Genome)
'範圍(0,n)的'應該是'範圍(N)'。 0是多餘的。 – gil
順便說一下,它也會檢測到這個錯誤。 – JulienD