我想获得一个滑动窗口,不'滑动',但只是增加,如如果宽度为1序列'ATCGATCGA'我想接收这些:(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)
理想情况下,我希望它从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
如何切片序列自己?
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