2016-04-01 99 views
0
def Skew(Text):  
    skew = {} 
    n = len(Text) 
    skew[0] = 0 
    for i in range(1,n+1): 
     #Every time we encounter a G, skew[i] is equal to skew[i-1]+1 
     if Text[i-1] == "G": skew[i] = skew[i-1]+1 
     #every time we encounter a C, Skew[i] is equal to Skew[i-1]-1 
     elif Text[i-1] == "C": skew[i] = skew[i-1]-1 
     #otherwise, Skew[i] is equal to Skew[i-1] 
     else: skew[i] = skew[i-1] 
return skew 


Text = "CCGGCCGG"  
positions = [] #output variable 
skew = Skew(Text) 
print skew 
minimum = min(skew.values()) 
print minimum 
#use the for loop, to look for i when Skew[i]=minimum 
for i in skew: 
    if skew[i] == minimum: positions.append(i) 
positions = positions[1:] 
print positions 

「」「這是我的代碼(道歉,第一次使用),但它不會做我想做的。如果你運行代碼,最小值爲 - 2,有2個按鍵與-2所以位置應該有兩個結果,而不是一個。有人可以解釋爲什麼這種情況持續發生?「」」分函數只打印一個結果,而不是兩個

+0

那是因爲你用這一行刪除第一個結果:positions = positions [1:]。 –

+0

@PiotrDabkowski。我現在看到了。謝謝 – FunmitoA

回答

0

第一個指數是從0開始,



    positions = positions[0:] 

相關問題