滑动窗口增加

时间:2014-05-21 09:23:24

标签: python python-2.7 sliding-window

我希望得到一个滑动窗口,不会滑动&#39;但只是增加,如果序列的宽度为1,则ATCGATCGA&#39;我想收到这些: (A)(A,T)(A,T,C)(A,T,C,G)(A,T,C,G,A)(A,T,C,G,A,T)(A ,T,C,G,A,T,C)(A,T,C,G,A,T,C,G)(A,T,C,G,A,T,C,G,A)< / p>

理想情况下,我希望它以9开始滑动,因此为什么在代码中我一直在研究n = 1 + 8 + i。我想通过枚举滑动它会在每次添加,因此增加,但下面的错误发生

尝试过的代码:

def Slide_merge (seq):
    n=1+8+i
    it= iter(seq)
    for i, in enumerate(list(islice(it, n))):
        print it
        print n

错误讯息:

<ipython-input-1-80c92e1a3f14> in Slide_merge(seq)
      1 import itertools
      2 def Slide_merge (seq):
----> 3     n=1+8+i
      4     it= iter(seq)
      5     for i, in enumerate(list(islice(it, n))):

UnboundLocalError: local variable 'i' referenced before assignment

1 个答案:

答案 0 :(得分:3)

如何自己切割序列?

In [12]: def slide_merge(seq):
   ....:     for i in range(1, len(seq)):
   ....:         print seq[0:i]
   ....:

In [13]: slide_merge('ATCGATCGA')
A
AT
ATC
ATCG
ATCGA
ATCGAT
ATCGATC
ATCGATCG