擅长:python、mysql、java
<p>经过一番脑力激荡和网络研究,我有了一个简单解决问题的想法</p>
<p>我的代码:(<code>get_k.py</code>)</p>
<pre><code>class klist(list):
curKidx = 0
def get_next_k(self, k = 1):
list_len = self.__len__()
if (self.curKidx + k) > list_len:
k = list_len - self.curKidx
retKlist = [list.__getitem__(self, idx) for idx in range( self.curKidx, (self.curKidx + k) )]
self.curKidx = self.curKidx + k
return retKlist
a = klist([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
print( a.get_next_k(3) )
print( a.get_next_k(3) )
print( a.get_next_k(3) )
print( a.get_next_k(3) )
</code></pre>
<p>输出:</p>
<pre><code># ./get_k.py
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[0]
</code></pre>
<p>另外,这里最大的灵活性之一是,我可以在每次调用中修改K的值</p>
<p>谢谢</p>