2016-04-01 43 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:] 

相关问题