快对python失去信心了!求大神指点!

最帅程序猿 发布于 2013/04/09 11:27
阅读 647
收藏 1

for j in range(0,len(list)-2): 

    print "list[%d]:%d-list[%d]:%d = %d" %(j,list[j],j+1,list[j+1],list[j]-list[j+1])

             if((list[j]-list[j+1]) >= 256):
                        del list[j+1]
                      

代码如上,我在range里面计算了list长度,循环体里面减少了list长度,这个range每次都计算,还是只在最初的时候计算一次?现在看来是只计算一次,因为后面会说下标越界。

我只是想把list里面符合要求的元素删掉,求问大神,这个怎么破?

而且还有一点,假设list[1]-list[2]>=256,那么我想删掉list[2],然后拿list[1]-list[2] ##其实是原来的list[3],现在是list[2],  我用j-=1这种来控制为啥不行呢,还是

list[20]:3029979672-list[21]:3029979685 = -13   ## 然后21应被删掉,下一个还应该是20-21
this 2 addr can be coverge and the len became: 29 !
list[21]:0-list[22]:3029979699 = -3029979699    ##这里j没有按预想的是20,还是增加了1



加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部