我希望得到一个滑动窗口,不会滑动&#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
答案 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