Advertisement
kpfp_linux

LazyList in python

Oct 13th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.49 KB | None | 0 0
  1. class LazyList:
  2.     def __init__(self, it, cache_step=4):
  3.         self.it = iter(it)
  4.         self.cache = []
  5.         self.cache_step = cache_step
  6.  
  7.     def __getitem__(self, i):
  8.         while True:
  9.             try:
  10.                 return self.cache[i]
  11.             except IndexError:
  12.                 pre = len(self.cache)
  13.                 self.cache.extend(x for _, x in zip(range(self.cache_step - 1), self.it))
  14.                 if pre == len(self.cache):
  15.                     raise IndexError
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement